【发布时间】:2011-11-20 08:09:01
【问题描述】:
我已经阅读了很多分步教程,但仍然无法让我的代码工作,我浏览了这个网站上的解决方案也没有运气,我不知道我做错了什么。
我正在使用jQuery,想知道用户名“mark”是否被占用,我什至还没有到达数据库链接。
[HTML]
<input id="user_name" name="user_name" onchange="UserCheck()" type="text" value="" />
<div id="status" />
[JS]
function UserCheck() {
$("#status").html("Checking....");
$.post("/user/check",
{ username: $("#user_name").val() },
function (data) {
if (data == 0) {
$("#status").html("Available");
}
else {
$("#status").html("Taken");
}
});
}
[Controller]
public JsonResult check(FormCollection form)
{
System.Threading.Thread.Sleep(3000);
string name = form["username"];
if (name.Equals("mark")){
return Json(1);
} else {
return Json(0);
}
}
【问题讨论】:
-
您正在使用 AJAX 对“check”方法进行发布,该方法正在等待看起来像 FormCollection 对象的东西,将其切换为字符串而不是像“JsonResult check(string name)”跨度>
-
提供更多关于什么是问题的信息... ajax 调用是否正常? (使用萤火虫看到这个),你是用它调用的动作方法吗? (使用刹车点)如果是,是否有任何服务器端错误?帮助我们帮助您。
-
试试@Joakim 所说的。另外,在你的 $.post 中添加一个 on error 函数,看看请求是否有效,但响应是错误的。数据实际上可能包含您发回的 1,但 jQuery 看到错误响应,因此不会调用您的 on success 函数。
-
您是否使用过 fiddler 或类似的工具来查看进行 ajax 调用时返回的内容?它甚至到达服务器上的操作吗?
标签: jquery asp.net asp.net-mvc