【问题标题】:ValidationSummary in MVC RazorMVC Razor 中的 ValidationSummary
【发布时间】:2016-06-03 10:45:22
【问题描述】:

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

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

问题 1 它像这样输出验证消息

例如,我希望它列出每个单独的错误

  • 姓名为必填项
  • 需要评论

问题 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() 可以正常工作。为失败的表单字段显示验证消息。如何更新默认客户端消息以列出每个验证错误消息。

【问题讨论】:

  • 你试过@Html.ValidationSummary(false)
  • 是的,对不起,我应该提到我试过了,但没有用

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多