问题描述
我尝试按照其他答案回答问题,如无济于事。
我的问题是我正在尝试将验证消息重新带到我的剃刀表单中,但是它们没有出现在“验证摘要”部分中。
验证摘要一直在显示,直到我在问题末尾添加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,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>