【问题标题】:MVC Validation : wrong message displayedMVC 验证:显示错误消息
【发布时间】:2013-08-15 06:42:09
【问题描述】:

您好,这是我的模型代码中的正则表达式

    [Required]
    [StringLength(127)]
    [RegularExpression("^[a-zA-Z]+$", ErrorMessage = "Enter only alphabets for First Name")]
    public string FirstName { get; set; } //First Name should only use Alphabets

这是 /home/index.aspx 页面中的验证

<%  using (Html.BeginForm("Index", "Home", FormMethod.Post, new { @id = "AudienceRequest" }))
    { %>
        <%= Html.ValidationSummary(true, "To request tickets, please complete the required (*) fields below and click Submit") %>


        <div>
            <label>First Name
            <%= Html.ValidationMessageFor(x => x.FirstName, "*") %></label>
            <%= Html.TextBoxFor(x => x.FirstName) %>

现在,验证部分有效。如果我输入 BOB333,它将不会提交表单。但显示的消息是错误的。它仍然显示“要申请门票,请填写下面的必填 (*) 字段并单击提交”,而不是“只输入名字的字母”

请指教。

谢谢

【问题讨论】:

    标签: validation asp.net-mvc-4


    【解决方案1】:

    你需要改变

    <%= Html.ValidationSummary(true, "To request tickets, please complete the required (*) fields below and click Submit") %>
    

    <%= Html.ValidationSummary(false, "To request tickets, please complete the required (*) fields below and click Submit") %>
    

    布尔标志用于“排除属性错误” - 请参阅MSDN

    【讨论】:

    • 通过设置为false,它仍然在模型级别显示消息,但它也显示所有其他错误消息
    • 是的——它应该是这样工作的。想法是,如果您将其设置为 true,您只希望模型级别的错误位于顶部,并且在相应控件旁边的整个页面中都会出现属性级别的错误,因此不需要它们都在顶部重复。
    猜你喜欢
    • 2014-09-23
    • 2020-01-22
    • 2014-10-17
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    相关资源
    最近更新 更多