こんにちは、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>
編集
私のcshtmlの下の私のJavascript
@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);
}
Firebug エラー
「/」アプリケーションでサーバー エラーが発生しました。無効な JSON プリミティブ: NewAcctName。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.ArgumentException: 無効な JSON プリミティブ: NewAcctName。
ソース エラー:
現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。