【问题标题】:how do you pass a parameter to an asp.net page method using jquery/ajax?如何使用 jquery/ajax 将参数传递给 asp.net 页面方法?
【发布时间】:2009-02-04 08:31:22
【问题描述】:

我正在尝试将参数传递给我的静态 Web 方法(位于 asp.net 页面中)。我正在尝试传递值为“myvalue”的“test1”参数。关于我做错了什么有什么想法吗?

$.ajax({
    type: "POST",
    url: "WebForm1.aspx/WebMethod1",
    data: {"test1": "myvalue"},
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
        alert(msg.d);
    }
});

【问题讨论】:

  • 想通了,我的“数据”部分是错误的。它必须是“{'test1':'myvalue'}”
  • 将其写为答案,为回答您自己的问题而投票。 :)
  • 你应该结束这个问题吗?

标签: asp.net jquery web-services asmx


【解决方案1】:

我的“数据”部分是错误的。它需要是“{'test1':'myvalue'}”

【讨论】:

    【解决方案2】:

    你遇到了什么错误?

    我以前使用过原型(类似于 jQuery 用于 ajax),因此您不引用参数名称。所以你的数据参数应该是:

    data: {test1: "myvalue"}
    

    试一试。

    您也可以尝试设置 Fiddler 并查看实际发出的请求。

    【讨论】:

    • 对不起,这是不正确的。你展示的是一个 JavaScript 对象。这需要转换为 JSON 字符串,例如提问者如何显示: date: {"test1":"myvalue"}
    【解决方案3】:

    按照您的设置方式,ajax 调用中可能发生的任何错误都会被默默地吞下。我建议添加这样的错误回调:

    $.ajax({
        type: "POST",
        url: "WebForm1.aspx/WebMethod1",
        data: {"test1": "myvalue"},
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            alert(msg.d);
        },
        error: function(response) {
            $('body',document).html(response.responseText);
        }
    });
    

    此外,如果您使用的是 Visual Studio,则可以在调试模式下运行 ASP.NET 应用程序以捕获任何服务器端错误。您还可以在服务器端代码中的某处放置断点,以确保它完全被命中,并检查 Request.Form 集合。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 2010-10-18
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多