【问题标题】:Jquery's Ajax Property For Asp.Net 2.0用于 Asp.Net 2.0 的 Jquery 的 Ajax 属性
【发布时间】:2008-11-15 08:21:57
【问题描述】:

我总是在博客中看到这样的代码:

$.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: "WebService.asmx/HelloWorld",
                    data: "{}",
                    dataType: "json",
                    success: function(msg) {
                        alert(msg.d);
                    }
                });

但我认为这仅适用于 asp.net 3.5。我无法使用 2.0 运行它。如何在我的应用程序中使用这些代码?

【问题讨论】:

    标签: jquery ajax asp.net-ajax asp.net-2.0


    【解决方案1】:

    您需要将此属性添加到您的网络服务器类

    [System.Web.Script.Services.ScriptService]
    public class Service : System.Web.Services.WebService
    

    这个属性给你的函数

    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    

    从技术上讲,您不需要指定响应格式,因为它会根据 到您在请求中指定的格式。而且您必须在请求中指定格式。

    问候

    【讨论】:

      【解决方案2】:

      如果您使用 jQuery 连接到服务器,则您的 HTML 中不需要 ScriptManager

      我认为你代码的其他部分是正确的。只需删除ScriptManager

      【讨论】:

        【解决方案3】:

        我已经知道这篇文章,但它帮不了我。

        在我的示例应用中,我使用以下代码:

        我的 Jquery 代码:

             $(document).ready(function() {            
                $('#clKaydet').click(function() {
                    $.ajax({
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        url: "WebService.asmx/HelloWorld",
                        data: "{}",
                        dataType: "json",
                        success: function(msg) {
                            alert(msg);
                        }
                    });
        
                });
        
            });
        

        我的 HTML 代码:

        <form id="form1" runat="server">
            <asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server" />
            <div>
        
                <input type="button" id="clKaydet" runat="server" value="Kayıt" onclick="Kayit()" />
            </div>
        
            </div>
            </form>
        

        我的网络服务代码:

          <WebMethod()> _
        Public Function HelloWorld() As String
            Dim sText As String = "Hello"
            Return sText
        End Function
        

        有什么错误吗?

        【讨论】:

          【解决方案4】:

          我们使用 jQuery 进行所有 DOM 操作,但在将数据发送回服务器时,我们使用 ASP.Net AJAX 来利用自动生成的代理类

          让生活变得真正简单!

          【讨论】:

            【解决方案5】:

            我认为您缺少的一点是标有 WebMethod 标记的方法会将数据序列化为 XML,而不是 JSON。使用 ASP.NET MVC,您可以本机返回 JSON,但如果您想要将 JSON 用于 WebMethod,您可能需要编写自己的转换器。我建议尝试将 AJAX 调用的数据类型更改为“xml”,看看是否可行。

            我还没有将 jquery 用于 AJAX(还),所以我还没有尝试过(还)。

            【讨论】:

              【解决方案6】:

              总之,你是不是这么说,我不能直接在 asp.net 2.0 中使用这些代码?

              【讨论】:

                猜你喜欢
                • 2010-10-27
                • 2014-02-10
                • 1970-01-01
                • 1970-01-01
                • 2011-06-27
                • 1970-01-01
                • 2018-10-17
                • 2020-10-03
                • 2019-11-25
                相关资源
                最近更新 更多