0

次のように、単純な ajax スクリプトを webmethod に使用しようとしています。

  <script type="text/javascript">
        $(document).ready(function () {
         $("#btnretreive").click(function () {
            $.ajax({
                 type: "POST",
                 url: "Default.aspx/Gettext",
                 data: {inputtext: $('#sometext').val()},
                 contentType: "application/json; charset=utf-8",
                 dataType: "json",
                 success: function(msg) {
                     $("#Result").text(msg.d);
                   }
             });
         });
     });
 </script>

そして、これは私のウェブメソッドです:

 <WebMethod()> _
    Public Shared Function Gettext(ByVal inputtext As String) As String
           Return inputtext
    End Function

これが私のHTML部分です:

<input id="sometext" type="text" />
<input id="btnretreive" type="button" value="button" />
<div id="Result"></div>

今私の問題は、入力テキストを送信して受信できないことです.誰かが私がここでやっている間違いを指摘できますか.

4

3 に答える 3

1

Json を返すには、Web メソッドで ScriptMethod 属性を使用する必要があります。

<ScriptMethod(ResponseFormat:=ResponseFormat.Json)>

詳細: http://msdn.microsoft.com/en-us/library/system.web.script.services.scriptmethodattribute.aspx

注: MSDN に示されているように、WebMethod 属性も保持する必要があります。

また、WebMethod に渡す Json オブジェクトを文字列に変換する必要があります。次に例を示します。

data: JSON.stringify({inputtext: $('#sometext').val()}),

それが役に立てば幸い。

于 2012-04-22T20:00:17.303 に答える
0

contentType をアプリケーション JSON として指定したため、jQuery はおそらくデータを json として投稿していますが、これは asp.net が認識しないため、パラメーター値を受け取りません。 ' タイプとして

于 2012-04-22T19:53:53.690 に答える
0

メモリから、データ部分は文字列にする必要があると思います。したがって、行は次のようになります

data: '{inputtext : ' + $('#sometext').val() + '}',
于 2012-04-22T19:59:02.180 に答える