【问题标题】:Custom validation Error Messages自定义验证错误消息
【发布时间】:2014-03-27 17:32:21
【问题描述】:

我正在使用数据注释,并且我已经应用了范围验证器,但验证器中的错误消息不起作用。默认为“Code1 字段为必填项”..

View Page::

  @Html.DropDownListFor(m => m.Code1, Model.Codes, "Select", new { })
                      @Html.ValidationMessageFor(mbox => mbox.Code1)

model
  [Range(1, 250, ErrorMessage = "code field is required")]
        public int Code1 { get; set; }

我不知道为什么我定义的错误消息没有显示出来。

我也尝试过更改视图页面中的消息:

View Page::

  @Html.DropDownListFor(m => m.Code1, Model.Codes1, "Select","Code is required", new { })

现在,此处定义的消息正在工作,但它给了我一个奇怪的行为。 它以黑色和白色显示上述给定的消息,当 验证触发,当我更改下拉列表中的值时,它再次变为黑白。

在此处输入代码

【问题讨论】:

    标签: asp.net-mvc validation asp.net-mvc-4 data-annotations


    【解决方案1】:

    使用必需的验证器而不是范围验证器来强制输入。

        [Required(ErrorMessage = "Code1 is required")]
        [Range(1, 250, ErrorMessage = "Value must be between 1 and 250")]
        public int Code1 { get; set; }
    

    【讨论】:

    • 您还可以使用 Range 验证器,但使用上面的验证器并确认它正在工作。
    • 这是有效的,但为什么范围不起作用。我曾经在 MVC3 中应用范围,并且每次都有效。
    • 这就是我提到的,你也可以使用范围。试试这个-[Required(ErrorMessage = "Code must be set")] [Range(1, 250, ErrorMessage = "Code must be between 1 和 250")] public int Code1{ get;放; }
    • 一件事我不知道,但请回答我。我已经写了@Html.validationmessagefor(m=>m.code)。但是,如果我从模型中删除 required 甚至范围验证器,那么还会显示验证消息并显示字段 code1 是必需的。
    • 恕我直言,如果不先进行设置,就无法进行验证,因此请复制消息字符串,在项目中搜索字符串并查看它的来源。
    猜你喜欢
    • 2016-04-18
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多