jQuery AJAX 没有命中 WebMethod
jQuery AJAX doesn't hit WebMethod
您可能想知道它是重复的 post。但是,我在各种博客上进行了很多研究,但我不明白我在做什么错误。
我正在调用如下网络方法
$.ajax({
type: "POST",
url: "test.aspx/Save",
data: "{ 'Id': 'test', 'newvalue': 'test' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () {
alert('success');
},
error: function (xhr, status, error) {
alert(err.Message);
},
failure: function () {
alert('failure');
}
});
我收到警报 "Success" 但我从未看到它访问 WebMethod。我的网络方法如下
[WebMethod]
public static void Save(string Id, string newvalue)
{
//my code
}
我保留了断点,但它从未命中。我也试过 $Post 但同样的问题
$.post("test.aspx/Save", { Id: "test", newvalue: "test" }, function (data, status) {
alert('second');
});
None 这些调用确实命中了 web 方法,但我在 Ajax 调用中收到成功警报,在 post 调用中收到 "second" 警报。请告知,如果你们中的任何人有任何线索。谢谢
对于 ASP.NET 页面,您可以创建一个简单的 javascript 函数并像这样调用它:
<script type="text/javascript">
function dostuff() {
PageMethods.Save("new Id", "new Value"); //this gets any webmethod registered on your page(in this case, the "Save" you created)
}
</script>
ON MVC:出于某种原因,您似乎无法使用 ajax 调用在控制器页面上声明的静态函数,但是一旦我删除了 static 关键字,它就像一个魅力。
我有办法解决这个问题。在我的 RouteConfig.cs 中,RedirectMode 设置不正确。将模式更改为关闭后,一切正常。
public static void RegisterRoutes(RouteCollection routes)
{
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Off;
routes.EnableFriendlyUrls(settings);
}
您可能想知道它是重复的 post。但是,我在各种博客上进行了很多研究,但我不明白我在做什么错误。
我正在调用如下网络方法
$.ajax({
type: "POST",
url: "test.aspx/Save",
data: "{ 'Id': 'test', 'newvalue': 'test' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () {
alert('success');
},
error: function (xhr, status, error) {
alert(err.Message);
},
failure: function () {
alert('failure');
}
});
我收到警报 "Success" 但我从未看到它访问 WebMethod。我的网络方法如下
[WebMethod]
public static void Save(string Id, string newvalue)
{
//my code
}
我保留了断点,但它从未命中。我也试过 $Post 但同样的问题
$.post("test.aspx/Save", { Id: "test", newvalue: "test" }, function (data, status) {
alert('second');
});
None 这些调用确实命中了 web 方法,但我在 Ajax 调用中收到成功警报,在 post 调用中收到 "second" 警报。请告知,如果你们中的任何人有任何线索。谢谢
对于 ASP.NET 页面,您可以创建一个简单的 javascript 函数并像这样调用它:
<script type="text/javascript">
function dostuff() {
PageMethods.Save("new Id", "new Value"); //this gets any webmethod registered on your page(in this case, the "Save" you created)
}
</script>
ON MVC:出于某种原因,您似乎无法使用 ajax 调用在控制器页面上声明的静态函数,但是一旦我删除了 static 关键字,它就像一个魅力。
我有办法解决这个问题。在我的 RouteConfig.cs 中,RedirectMode 设置不正确。将模式更改为关闭后,一切正常。
public static void RegisterRoutes(RouteCollection routes)
{
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Off;
routes.EnableFriendlyUrls(settings);
}