首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >禁用‘值'xxx’对'yyy‘消息无效

禁用‘值'xxx’对'yyy‘消息无效
EN

Stack Overflow用户
提问于 2012-03-08 07:35:39
回答 1查看 2.7K关注 0票数 3

在我的ASP.NET MVC应用程序中,我有一个表单,并且我使用了一个ViewModel,因此ModelBinder可以绑定到我的强类型类。我正在使用DataAnnotations进行验证

代码语言:javascript
运行
复制
public class FormViewModel
{
    [Required]
    public string SomeValue {get;set;}

    [Range(0, 10, ErrorMessage="Enter a number between 0 and 10.")]
    public byte? SomeOtherValue {get;set;}

}

这很好用。然而,问题是当用户没有为SomeOtherValue输入有效的值(如abc)时,会弹出一个标准的MVC错误:‘值'abc’对'SomeOtherValue‘无效。这真的很烦人,因为我不能定制这条消息。我知道有一些方法可以本地化这个消息,但那是没有意义的(我不想要一般的消息,我想要一个特定于值的值)。

我尝试将RegularExpression-attribute应用于“SomeOtherValue”,它只允许字节值,但标准验证可能会“覆盖”此验证。有没有办法为属性应用自定义的“值无效”消息,或者禁用标准消息?

EN

回答 1

Stack Overflow用户

发布于 2013-10-11 04:33:48

如果自定义验证属性对您不起作用,这里有一个不同的(非理想方式,IMHO)来修复它。在控制器中:

代码语言:javascript
运行
复制
if (!ModelState.IsValid)
{
    string fieldName = "ThatFieldName";
    var m = ViewData.ModelState[fieldName];

    if (m != null && m.Errors.Count > 0)
    {
        ViewData.ModelState.Remove(fieldName);
        ViewData.ModelState.AddModelError(fieldName, "You mucked that field up.");
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9610822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档