【发布时间】:2014-08-29 19:03:53
【问题描述】:
我已经阅读了这里所有关于它的帖子,但没有找到解决它的答案。
我在这个控制器中有一个动作:
public class AccountController : Controller
{
[HttpPost]
public JsonResult CheckUsername(string i_username)
{
var MembershipProvider = new OtakimMembershipProvider();
return Json(MembershipProvider.CheckUsername(i_username));
}
}
这是View中的代码:
$.ajax({
type: "POST",
url: '@Url.Action("CheckUsername", "Account")',
contentType: "application/json; charset=utf-8",
data: { 'i_username': 'silagy' },
dataType: "json",
success: function (data) {
alert(data);
},
error: function () {
}
});
现在我不断收到此错误:
POST http://localhost:61035/Account/CheckUsername 500 (Internal Server Error)
根据这里的帖子,我正在使用它来生成 URL:
url: '@Url.Action("CheckUsername", "Account")',
恢复原状 - 编辑
好的,在调试模式下挖掘后我发现了问题。
错误是:“无效的 JSON 原语:i_username。”
并基于这篇文章 "Invalid JSON primitive" in Ajax processing
我将代码更改为:
var data = { "i_username": "silagy" };
$.ajax({
url: '@Url.Action("CheckUsername", "account")',
type: 'POST',
data: JSON.stringify(data),
datatype: "json",
contentType: "application/json; charset=utf-8",
error: function (xhr) {
alert('Error: ' + xhr.statusText);
},
success: function (result) {
alert(result);
}
});
【问题讨论】:
-
不,我没有,但为什么要添加静态,控制器不是静态类
-
您收到的是 500 错误,而不是 404。您收到的错误信息是什么?
-
那么是哪一个:404 还是 500?这真的不是一回事......添加一个断点,看看动作被击中。之后只需调试您的
OtakimMembershipProvider。 -
这是操作没有遇到的问题。我在“var MembershipProvider ...”行中添加了一个断点
-
您是否更改了配置?我的意思是路线,主要是。你的代码看起来不错。您还可以检查
Url.Action是否有效,方法是检查您的视图或在$.ajax之前设置debugger;并在浏览器中打开开发者控制台。
标签: jquery ajax asp.net-mvc