Action Filter中的Locale DisplayName属性?

时间:2010-05-28 13:00:31

标签: asp.net-mvc localization actionfilterattribute displayattribute

是否可以访问我的ViewData.Model上使用的DisplayNameAttributes,以便在将它们发送到视图之前对它们进行本地化? 像这样:

Public Void OnActionExecuted(ActionExecutedContext: filterContext) {
  foreach (DisplayNameAttribute attr in filterContext...) {
    attr.TheValue = AppMessages.GetLocazation(attr.TheValue);
  }
}

我缺少的是如何访问属性。这有可能吗?

P.S:我们在工作中使用vb.net而且它正在渗透我的大脑。如果我的C#太过分了,那就道歉了。

2 个答案:

答案 0 :(得分:1)

不要在运行时更改属性值。在最好的情况下,这将是一个无操作(因为您将在属性实例的副本上操作) );在最坏的情况下,这将导致代码中的竞争条件。始终将属性实例视为不可变。

如果需要本地化[DisplayName],请将其子类化并覆盖虚拟DisplayName属性。有关如何执行此操作的示例,请参阅Localization of DisplayNameAttribute

答案 1 :(得分:0)