0

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

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

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

PS:我们在我的工作中使用 vb.net,它正在渗透到我的大脑中。如果我的 C# 有点过时,请道歉。

4

2 回答 2

1

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

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

于 2010-05-28T18:13:04.637 回答
0

是的,您可以访问它。

于 2010-05-28T13:05:36.683 回答