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

您需要在 Web 方法中使用 ScriptMethod 属性才能返回 Json。

<ScriptMethod(ResponseFormat:=ResponseFormat.Json)>

更多信息:http: //msdn.microsoft.com/en-us/library/system.web.script.services.scriptmethodattribute.aspx

注意:您也必须保留 WebMethod 属性,如 MSDN 中所示。

此外,您需要将传递给 WebMethod 的 Json 对象转换为字符串,例如:

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

希望能帮助到你。

于 2012-04-22T20:00:17.303 回答
0

由于您将 contentType 指定为应用程序 JSON jQuery 可能将数据发布为 json,asp.net 无法识别,因此不会接收参数值,webmethods 在查询字符串中接收参数,尝试删除 contentType,只留下 dataType,还尝试删除 'POST ' 作为类型

于 2012-04-22T19:53:53.690 回答
0

从记忆中,我相信数据部分需要在一个字符串中。所以这条线将是

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