繁体   English   中英

存在表单错误时不显示 ASP.NET MVC 验证摘要

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM