私はこのような部分的なビューを持っています(簡略化):
@model Portal.Models.LoginModel
<div class="login-container k-block">
<section id="login-form" class="">
@using (Html.BeginForm(actionName, controllerName, new { ReturnUrl = ViewBag.ReturnUrl }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset id="login-form-list-items">
<ol>
<li>
@Html.LabelFor(m => m.CardNumber)
@Html.TextBoxFor(m => m.CardNumber, new { @class="k-textbox"})
<div class="k-error-colored">
@Html.ValidationMessageFor(m => m.CardNumber)
</div>
</li>
<li>
@Html.LabelFor(m => m.Pin)
@Html.PasswordFor(m => m.Pin, new { @class="k-textbox"})
<div class="k-error-colored">
@Html.ValidationMessageFor(m => m.Pin)
</div>
</li>
<input id="login-input-submit" class="k-button" type="submit" value="Enter" />
</fieldset>
</div>
そして、私のlogin
見解では、この部分ビューを次のように呼び出します。
@model Portal.Models.LoginModel
@Html.Partial("_LoginFormNoRegistration", Model, new ViewDataDictionary { { "actionName", "Login" }, { "controllerName", "Account" } })
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
問題はlogin
、コントローラーのメソッドが次のようなエラーを追加する場合です。
public ActionResult Login(LoginModel model, string returnUrl)
{
//...
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}
検証の概要にメッセージが表示されません...理由がわかりません...何が問題なのですか? 一部の JavaScript ライブラリが見つかりませんか?
アップデート
novalidate
また、フォームが属性セットとして生成されることもわかりました。
<form action="/" method="post" novalidate="novalidate">
//...
</form>
どうしてか分かりません。