[英]ASP.NET MVC Validation Summary not displaying when form errors are present
我试过按照其他问题的答案来回答这个问题,但无济于事。
我的问题是我试图将验证消息带回我的 razor 表单,但它们没有出现在验证摘要部分。
验证摘要一直在显示,直到我在问题末尾添加 CSS。 ModelState 在控制器中也被标记为无效,并且它将 dto(模型)返回到视图。
形式:
@model Application.ViewModels.ContactUsViewModel
@using (Html.BeginForm("SendEmail", "Help", FormMethod.Post))
{
<div class="container">
<div class="row form-group">
<div class="col-sm">
@Html.LabelFor(m => m.Subject)
@Html.EditorFor(m => m.Subject, new { htmlAttributes = new { @class = "form-control", tabindex = 1 } })
</div>
</div>
<div class="row form-group">
<div class="col-sm">
@Html.LabelFor(m => m.Message)
@Html.EditorFor(m => m.Message, new { htmlAttributes = new { @class = "form-control", tabindex = 2 } })
</div>
</div>
<div class="row form-group">
<div class="col-sm">
<button type="submit" class="button-default-small"><h5 class="buttonText">SEND</h5></button>
</div>
</div>
<div class="row">
<div class="col-sm">
@Html.ValidationSummary(false, "Please enter all required information.", new { @class = "text-danger" })
</div>
</div>
</div>
}
查看型号:
public class ContactUsViewModel
{
[Required]
public string Message { get; set; }
[Required]
public string Subject { get; set; }
}
控制器:
[HttpPost]
public ActionResult SendEmail(ContactUsViewModel dto)
{
if (!ModelState.IsValid)
{
return View("HelpView", dto);
}
return RedirectToAction("HelpView");
}
public ActionResult HelpView()
{
return View();
}
CSS:
.validation-summary-valid {
display: none;
}
包含以下脚本来解决问题:
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.