私は、モーダルダイアログ内の部分ページを使用して、ウェブサイト上のさまざまなCRUDアクションを処理しています。これはうまくいきます。ログイン(下記参照)ではすべて同じ処理を行っていますが、HttpPost
アクションはコントローラがヒットしていないと私はなぜわからない。HttpPost ActionResult in Controller
代わりにHttpGet
が呼び出されています。
私は何が欠けていますか?
ログイン部分
@model Models.User
<script language="Javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script language="Javascript" type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script type="text/javascript">
$(function() {
$('#btn-login').click(function() {
$('#modal-container').modal('hide');
});
$('#btn-close').click(function() {
$('#modal-container').modal('hide');
});
});
</script>
<div class="login-container">
@using (Html.BeginForm())
{
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="login-table">
<div>
@Html.LabelFor(m => m.Username)
@Html.TextBoxFor(m => m.Username)
@Html.ValidationMessageFor(m => m.Username, "", new { @class = "text-danger" })
</div>
<div>
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password)
@Html.ValidationMessageFor(m => m.Password, "", new { @class = "text-danger" })
</div>
</div>
<div>
<button type="submit" id="btn-login" class="btn btn-sm">Login</button>
<button type="button" class="btn btn-default modal-close-btn" data-dissmiss="modal">Cancel</button>
</div>
}
</div>
アカウントコントローラのログインアクションメソッド
[AllowAnonymous]
[HttpGet]
public ActionResult Login()
{
return PartialView("Login");
}
[HttpPost]
public ActionResult Login(User model)
{
if(ModelState.IsValid)
{
// do stuff
}
return RedirectToAction("Index", "Announcements");
}
'[のAllowAnonymous]' POSTメソッドで? –
ログインを追加([FromBody]ユーザーモデル) –
@StephenMueckeありがとう!奇妙なことに、別のログインアプリでもどちらかが必要ではなかったが、それはそれをソートした、ありがとう! – PurpleSmurph