我知道我从Application_Start可以添加ActionFilterAttribute自定义全局过滤器并操纵ModelState,而不是。
有没有类似的方法,访问@Html(HtmlHelper)之前它被发送到视图?
原因是我想编辑(或删除并重新创建)UnobtrosiveValidationAttributes。如果我试图在视图中这样做:@Html.GetUnobtrusiveValidationAttributes("PhoneNumber").Clear();
没有任何事情发生,但我认为如果我早点到达它可能会有效吗?
(如果你想知道为什么:我需要翻译里面的ErrorMessages)
答案 0 :(得分:2)
我不确定是否有方法可以拦截不显眼的验证代码分配消息文本的位置。我不确定这是最好的主意,因为一个属性可以有许多不同的验证(必需,正则表达式,StringLength等......)
我可以告诉你,还有其他方法来本地化错误消息。开箱即用的一种方法是使用资源文件并定义资源键而不是错误消息。
[Required(ErrorMessageResourceName="resource-key")]
public string PhoneNumber { get; set; }
另一种有效但需要编写更多代码的方法是创建自己的自定义验证器,以便从存储它们的任何位置检索错误消息。我不得不最近这样做,因为我们所有的本地化都发生在数据库中。