MVC Razor中的ValidationSummary

时间:2016-06-03 10:45:22

标签: .net asp.net-mvc validation razor

我有一个强类型表单,它使用@Html.ValidationMessageFor()在表单字段旁边输出验证邮件,例如@Html.ValidationMessageFor(m => m.Comment)。这很有效。

我想在提交按钮的正上方添加一个验证摘要,该按钮将错误列表输出为ul。但是,使用@Html.ValidationSummary();会导致两个问题。

第1期 它输出验证消息,如此

enter image description here

我希望列出每个错误,例如

  • 姓名是必需的
  • 需要评论

第2期 验证被触发后,一旦我纠正了验证错误,我再也无法通过重新选择提交按钮来发帖了吗?

以下是我的表单

的简化版本
@using System.Linq
@using System.Web

@model MyProject.Models.ViewModels.Forms.ContactViewModel
<div class="form-block">
    @using (Html.BeginForm("Submit", null, FormMethod.Post, new { enctype = "multipart/form-data"}))
    {
        <fieldset>
            <legend>1. Your details</legend>
            <div>
                <div>
                    @Html.RequiredLabelFor(m => m.FirstName)
                </div>
                <div>
                    <div>
                        @Html.TextBoxFor(m => m.FirstName, new { placeholder = "First name" })
                    </div>
                    @Html.ValidationMessageFor(m => m.FirstName)
                </div>
            </div>          
        <div>
            <div>
                <input type="submit" value="Submit feedback"/>
            </div>
            @Html.ValidationSummary();
        </div>
    }
</div>

有人可以告诉我如何解决这个问题吗?

由于

编辑*确定我已禁用javascript并使用@ Html.ValidationSummary()与服务器端帖子工作正常。将显示失败的表单字段的验证消息。如何更新默认客户端消息以列出每个验证错误消息。

1 个答案:

答案 0 :(得分:0)

在控制器的post方法中检查ModelStateDictionary对象 - Html.ValidationSummary()方法根据其中存在的错误返回html UL。