c# - 当 url 重写处于事件状态时不调用 WebMethod

标签 c# jquery ajax webmethod

我知道那里有类似的帖子,但我没有找到任何帮助。

当我不使用 url 重写时,我的 web 方法可以工作,但是一旦我打开它,它就会停止工作。

jQuery

        $.ajax({
            type: "POST",
            url: "index.aspx/SaveSetting",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                console.log(msg);
            }
        });

C#

    [WebMethod()]
    [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
    public static string SaveSetting()
    {
        return "OK";
    }

调用此方法时,我会返回页面的完整 HTML,但没有“OK”消息。 我运行了调试器,发现当我调用 web 方法时,它会触发页面中的 Page_Load 而不是 web 方法。

所以我得到了正确的路径,但是没有调用web方法。

我使用 C#、jQuery、ASP.NET 3.5。

有什么帮助吗?

最佳答案

您需要使用指向您的网络方法的完整链接。

如果你查看 Firebug ,你会看到,例如:

http://localhost/test1/index.aspx/SaveSetting作为您尝试请求的 url,假设/test1 重写为/index.aspx

假设该页面位于您站点的根目录下,则以下内容将起作用:

网址:/index.aspx/SaveSetting

(顺便说一下,这对 url 路由根本不起作用!)

或许将您的网络方法移至 asmx 文件中?

关于c# - 当 url 重写处于事件状态时不调用 WebMethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10499894/

相关文章:

c# - 将按钮命令绑定(bind)到不同的 ViewModel

c# - 如何在 C# 中暂时关闭 Windows-7 第二显示器?

c# - 字段System.MulticastDelegate._invocationCount不可用C#

javascript - Switch case 传递多个值

javascript - 更改jquery中元素的id?

javascript - 如何在服务器端事件上注册客户端事件监听器?

php - 单击按钮调用 php 函数

c# - 如何将两个图标合并在一起? (将一个图标叠加在另一个图标之上)

javascript - 用jQuery旋转,记住位置

php - Ajax 正在躲避我。如何执行一个简单的ajax请求?