【问题标题】:Send and receive input text to webmethod using ajax call使用 ajax 调用向 web 方法发送和接收输入文本
【发布时间】:2012-04-22 19:49:38
【问题描述】:

我正在尝试使用简单的 ajax 脚本到 web 方法如下:

  <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>

现在我的问题是我无法发送输入文本并接收它。谁能指出我在这里做的错误。

【问题讨论】:

    标签: jquery asp.net ajax vb.net webmethod


    【解决方案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()}),
    

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • @rydice-首先感谢您的回复。即使我删除内容类型我也无法收到它。
      • 去掉'type',让jquery发送querystring中的参数,默认是'GET'
      • @ryudice-也这样做了,但没有成功。
      • 更改 $("#Result").text(msg.d);到 $("#Result").html(msg.d);
      【解决方案3】:

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

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多