1

我知道我从 Application_Start 可以 ActionFilterAttribute 添加自定义全局过滤器并操纵 ModelState 等等。

有没有类似的方法来访问@Html (HtmlHelper) 在它被发送到视图之前?

这样做的原因是我想编辑(或删除并重新创建)UnobtrosiveValidationAttributes。如果我尝试在这样的视图中这样做:@Html.GetUnobtrusiveValidationAttributes("PhoneNumber").Clear();什么都没有发生,但我想如果我早点得到它可能会起作用?

(如果你想知道为什么:我需要翻译里面的 ErrorMessages)

4

1 回答 1

2

我不确定是否有办法拦截不显眼的验证代码分配消息文本的位置。我不确定这是不是最好的主意,因为一个属性可能有许多不同的验证(必需、正则表达式、字符串长度等......)

我可以告诉你还有其他方法可以本地化错误消息。一种开箱即用的方法是使用资源文件并定义资源键而不是错误消息。

[Required(ErrorMessageResourceName="resource-key")]
public string PhoneNumber { get; set; }

另一种可行但需要编写更多代码的方法是创建您自己的自定义验证器,以便从存储错误消息的任何位置检索错误消息。我最近不得不这样做,因为我们所有的本地化都发生在数据库中。

于 2012-11-06T20:49:40.943 回答