是否可以访问我的ViewData.Model上使用的DisplayNameAttributes,以便在将它们发送到视图之前对它们进行本地化? 像这样:
Public Void OnActionExecuted(ActionExecutedContext: filterContext) {
foreach (DisplayNameAttribute attr in filterContext...) {
attr.TheValue = AppMessages.GetLocazation(attr.TheValue);
}
}
我缺少的是如何访问属性。这有可能吗?
P.S:我们在工作中使用vb.net而且它正在渗透我的大脑。如果我的C#太过分了,那就道歉了。答案 0 :(得分:1)
不要在运行时更改属性值。在最好的情况下,这将是一个无操作(因为您将在属性实例的副本上操作) );在最坏的情况下,这将导致代码中的竞争条件。始终将属性实例视为不可变。
如果需要本地化[DisplayName],请将其子类化并覆盖虚拟DisplayName属性。有关如何执行此操作的示例,请参阅Localization of DisplayNameAttribute。
答案 1 :(得分:0)