无法替换RegularExpressionAttribute的ErrorMessage中的占位符{0}

时间:2011-11-30 20:02:17

标签: c# validation data-annotations

[StringLength(100),
 RegularExpression(RegexPatterns.NoBracketsRegEx,
    ErrorMessageResourceType = typeof(Resources),
    ErrorMessage = "HTML tags are not allowed in {0} field")]
public virtual string Title { get; set; }

当我尝试在标题字段中输入Html标签时,我收到错误消息:

  

“{0}字段”

中不允许使用HTML标记

而不是

  

“标题字段中不允许使用HTML标记”。

我正在使用System.ComponentModel.DataAnnotations, Version=4.0.0.0

我试过设置Display(Name="Title")但仍然没有运气!知道出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

您不能同时使用ErrorMessageErrorMessageResourceType。它们的使用是相互排斥的。

对于非本地化错误消息,您可以使用使用字符串文字初始化的ErrorMessage属性(没有格式说明符,因为,就像您发现的那样,它们将按原样显示)。

对于本地化错误消息,请将ErrorMessageResourceType属性与ErrorMessageResourceName属性一起使用。

以下是一些可能有用的相关博文:  Localizing Validation Using DataAnnotations,和  ASP.NET MVC 2: Model Validation