我想使用jquery在我的文本框更改事件上调用JSON方法。
以下是我的JsonResult方法的样子
public JsonResult GetUserName(string emailId)
{
string UserName = "";
var query = (from u in DbContext.Users
where u.User_Email.ToLower() == emailId.ToLower()
select u).SingleOrDefault();
if(query!=null)
{
UserName = query.User_FirstName +", "+query.User_LastName;
}
return Json(UserName, JsonRequestBehavior.AllowGet);
}
下面是我的观看代码
Email: <input type="text" id="txtEmail" /><br /><br />
Name: <input type="text" id="txtName" />
下面是jquery代码
<script type="text/javascript">
$(document).ready(function () {
//$("#txtEmail").first().focus();
$("#txtEmail").change(function () {
var emailId = $(this).val();
//$("#txtName").val(emailId);
$.ajax({
url: 'GetUserName',
type: 'POST',
data: JSON.stringify({ emailId: emailId }),
dataType: 'json',
contentType: 'application/json',
success: function (data) {
if (data != "" || data != null) {
$("#txtName").val(data);
}
else {
alert("Our system does not recognize this email. Please try again.");
$("#txtEmail").focus();
}
}
});
});
});
</script>
注意....我的GetUserName JsonResult方法属于我的默认控制器。
我的jquery代码已成功执行更改事件,但GetUserName方法未被调用...请告诉我我缺少的内容。
谢谢,
答案 0 :(得分:2)
你的网址错误它应该像/DefaultControllerName/GetUserName
(如果GetUserName
不是你必须在网址中指定控制器的默认操作,这是默认控制器并不重要)为什么你应该总是使用内置的UrlHelper
来生成ASP.NET MVC中的URL:
$.ajax({
url: '@(Url.Action("GetUserName"))',
type: 'POST',
使用aspx viewengine:
$.ajax({
url: '<%: Url.Action("GetUserName") %>',
type: 'POST'