Guido W.: Parameter über URL übergeben

Hallo zusammen!
Ich habe einen Webservice via Visual Studio 2008 geschrieben. Dieser Service hat eine Funktion, die Übergabeparameter erwartet und dann einen String zurückliefert.

  
<WebMethod()> _  
    Public Function GetMessage(ByVal ProjectName As String, ByVal msgID As Integer, ByVal msgType As Char, ByVal languageCode As String) As String  
  
        //...  
        //...  
   return ErgebnisString  

Dann habe ich eine Website gemacht (default.aspx, nur eine Seite), die vier Textfelder hat, wo eben diese vier zu übergebenden Parameter eingetragen werden können und über einen Button-Klick ruft man die Funktion im Webservice auf:

  
function Button1_onclick() {  
        ret = myService.GetMessage(document.getElementById("txtProject").value, document.getElementById("txtMsgID").value, document.getElementById("txtMsgType").value, document.getElementById("txtLanguage").value, OnComplete, OnError)  
    }  

Das funktioniert so auch prima.
Jetzt möchte ich aber die Parameter nicht in den Textboxen eintragen müssen, sondern direkt in dem Aufruf der Seite mit übergeben, also z.B. direkt in der Adresszeile des Internet Explorers eingeben:

http://localmachine/default.aspx?ProjectName=Test&msgID=1&msgType=m&languageCode=en

Wie kann ich das realisieren?

  1. Mahlzeit Guido W.,

    http://localmachine/default.aspx?ProjectName=Test&msgID=1&msgType=m&languageCode=en

    Wie kann ich das realisieren?

    Sorge dafür, dass Dein Webservice auch auf GET-Parameter reagiert und bastele Dir einen entsprechenden Link. Fertig.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:& n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Mahlzeit Guido W.,

      http://localmachine/default.aspx?ProjectName=Test&msgID=1&msgType=m&languageCode=en

      Wie kann ich das realisieren?

      Sorge dafür, dass Dein Webservice auch auf GET-Parameter reagiert und bastele Dir einen entsprechenden Link. Fertig.

      MfG,
      EKKi

      Sorry, dass ich mich so doof anstelle, aber ich kenn mich mit den Mechanismen nicht so aus :(
      Mein Webservice reagiert ja auch auf GET-Parameter (wenn ich das richtig verstehe), denn ich kann ihn auch so aufrufen:

      http://localhost:2307/myWebsite/myService.asmx/GetMessage?ProjectName=P1&msgID=1&msgType=m&languageCode=de

      dann bekomme ich als Antwort einen String, der z.B. so aussieht:

      <?xml version="1.0" encoding="utf-8" ?>
        <string xmlns="http://tempuri.org/">key=xyz|id=1|type=m|text=blablabla|descr=hollakabolla</string>

      Dieser String muss dann aber noch zerlegt und in einer Tabelle angezeigt werden. In meiner Seite default.aspx rufe ich die Funktion über einen Button_Click auf und reagiere dann in der Callback-Funktion auf den empfangenen String:

        
      function Button1_onclick() {  
              ret = myService.GetMessage(document.getElementById("txtProject").value, document.getElementById("txtMsgID").value, document.getElementById("txtMsgType").value, document.getElementById("txtLanguage").value, OnComplete, OnError)  
          }  
        
      function OnComplete(arg) {  
         //zerlege Rückgabestring (arg) und bau ne Tabelle daraus...  
      }  
      
      

      Ich will das ganze jetzt nur so machen, dass ich ohne den Button_Click auskomme. Wenn ich meine default.aspx mit Übergabeparametern aufrufe, dann kann ich die ja ermitteln (in der Code-Ansicht der Seite):

        
      Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load  
              If String.IsNullOrEmpty(Request.Params.Get("Project")) Or String.IsNullOrEmpty(Request.Params.Get("MsgID")) _  
                  Or String.IsNullOrEmpty(Request.Params.Get("MsgType")) Or String.IsNullOrEmpty(Request.Params.Get("Language")) Then  
                  'Fehler  
              Else  
                  'ruf die Funktion im Webservice mit Übergabeparametern auf  
                  'und bastel dann die Tabelle mit den Rückgabewerten zusammen  
                  'aber wie kann ich hier den Webservice aufrufen und auf den  
                  'Antwortstring reagieren?  
              End If  
          End Sub  
      
      

      Versteht ihr, wie ich das meine?

      1. Mahlzeit Guido,

        Sorry, dass ich mich so doof anstelle, aber ich kenn mich mit den Mechanismen nicht so aus :(

        Das bekomme ich langsam mit.

        Du vermischt hier munter und bunt durcheinander Server- und Client-seitigen Code ... VB, HTML und Javascript.

        Mache Dir - und Deinen Lesern - bitte zuerst einmal klar, was Du eigentlich fachlich willst. Ohne Code.

        Was soll der Benutzer im Browser tun? Was soll wie reagieren?

        Dann man schauen, an welcher Stelle (Client <-> Server) der Knackpunkt liegt und wo man ansetzen kann. Wenn Du hier wild alles durcheinander wirfst, hilfst Du weder Deinen Lesern noch Dir selbst.

        Mein Webservice reagiert ja auch auf GET-Parameter (wenn ich das richtig verstehe), denn ich kann ihn auch so aufrufen:

        http://localhost:2307/myWebsite/myService.asmx/GetMessage?ProjectName=P1&msgID=1&msgType=m&languageCode=de

        dann bekomme ich als Antwort einen String, der z.B. so aussieht:

        <?xml version="1.0" encoding="utf-8" ?>
          <string xmlns="http://tempuri.org/">key=xyz|id=1|type=m|text=blablabla|descr=hollakabolla</string>

        Das ist doch schon mal nicht schlecht. Dann würde ja ein einfacher Link (< href="http://localhost:2307/myWebsite/myService.asmx/GetMessage?ProjectName=P1&msgID=1&msgType=m&languageCode=de">Webservice aufrufen</a>) reichen - solange die Parameter immer gleich bleiben.

        Wenn sie das nicht tun, kommst Du vermutlich entweder um ein Formular oder um irgendwelchen Client-seitigen nicht herum.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:& n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|