【发布时间】:2012-05-08 13:45:59
【问题描述】:
我知道那里有类似的帖子,但我没有找到任何帮助。
当我不使用 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 方法。
所以我得到了corerct路径,但是没有调用web方法。
我使用 C#、jQuery、ASP.NET 3.5。
有什么帮助吗?
【问题讨论】:
-
好的,发现重写规则搞砸了。所以猜猜最好的方法是使用 ScottE 建议的 *.asmx 文件,至少可以。
-
我知道这是很老的帖子了。我只是想知道您是否找到了 url 重写和 webmethod 的任何解决方案? .asmx 与 url rewrite 完美配合,但这对我的项目没有帮助。在我的项目中,需要使用 url rewrite 运行 Webmethod。