嗨,我试图在我的 cshtml 中使用我的 jquery (ajax) 调用我的控件中的函数...
我的RegisterNewAcct.cshtml中的代码位于主文件夹中
<div data-role="page" data-theme="a">
<div data-role="header" data-theme="a">
<a href="#CancelDialogPage" data-icon="arrow-l" data-rel="dialog" id="opencanceldialog">Cancel</a>
<h1>@ViewBag.Title</h1>
</div>
<h2>New Account</h2>
<div data-role="content" data-theme="a">
@using (Html.BeginForm())
{
@Html.ValidationSummary(true, "Registration Failed! Check your Registration Details.")
<div>
<fieldset>
<div>@Html.LabelFor(u => u.NewAcctName)</div>
<div>
@Html.TextBoxFor(u => u.NewAcctName)
@Html.ValidationMessageFor(u => u.NewAcctName)
</div>
<div>@Html.LabelFor(u => u.NewDispName)</div>
<div>
@Html.TextBoxFor(u => u.NewDispName)
@Html.ValidationMessageFor(u => u.NewDispName)
</div>
<div>@Html.LabelFor(u => u.NewEmail)</div>
<div>
@Html.TextBoxFor(u => u.NewEmail)
@Html.ValidationMessageFor(u => u.NewEmail)
</div>
<div>@Html.LabelFor(u => u.NewPassword)</div>
<div>
@Html.PasswordFor(u => u.NewPassword)
@Html.ValidationMessageFor(u => u.NewPassword)
</div>
<input type="submit" id="validatenewacct" value="Save" data-theme="b" /> <!-- THIS IS THE SUBMIT BUTTON AND WILL CALL MY JQUERY -->
</fieldset>
</div>
}
</div>
编辑
我的 Javascript 在我的 cshtml 下面
@section Scripts{
<script>
$(document).ready(function(){
$("#validatenewacct").click(function(e) {
$.ajax({
type: "POST",
data: $('form').serialize(),
url: "/Home/ValidateNewAccount",
contentType:"application/json; charset=utf-8",
success: function (result) {
alert("ok: "+ result);
},
error: function (result) {
alert('Oh no: '+ result);
}
});
});
});
});
</script>}
HomeController.cs 背后的代码
[HttpPost]
public ActionResult ValidateNewAccount(Models.HomeModel user)
{
if (ModelState.IsValid)
{
return Json("True");
}
else
{
return Json("false");
}
return View(user);
}
萤火虫错误
“/”应用程序中的服务器错误。无效的 JSON 原语:NewAcctName。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ArgumentException:无效的 JSON 原语:NewAcctName。
源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。