【问题标题】:Reuse DisplayAttributes with view model properties重用具有视图模型属性的 DisplayAttributes
【发布时间】:2013-03-18 21:00:48
【问题描述】:

有没有办法在视图模型中使用实体的DisplayAttribute 值?

public partial class Catalog
{
  [Display(ResourceType = typeof(Resources), Name = "ID")]
  public string ID { get; set; }

  [Display(ResourceType = typeof(Resources), Name = "CatalogName")]
  public string CatalogName { get; set; }
}

public class CatalogViewModel
{
  private readonly Catalog _catalog;

  // I want reuse Catalog.CatalogName's display values.
  public String CatalogName
  {
    get { return _catalog.CatalogName; }
  }
}

我无法从视图模型访问资源。

【问题讨论】:

    标签: asp.net-mvc viewmodel data-annotations asp.net-mvc-viewmodel


    【解决方案1】:

    通常,您不会像在此处那样在视图模型中使用域对象。 here 解释了为什么这不是一个好的做法(尽管在功能上它会起作用)。 您需要做的是从字符串和整数(原语)定义您的视图模型 并使用AutoMapper之类的东西在它们之间进行映射。在现实生活中的网站中,很少有领域模型一对一地映射到视图模型,通常视图模型是为特定视图量身定制的,其中包含来自多个表的所有必需信息。

    回到您的问题:根据我刚刚描述的最佳实践定义视图模型,您当然可以(并且应该)定义所有注释和验证(使用 fluent validationdata annotation

    希望对你有帮助,如果没有请告诉我。

    【讨论】:

      猜你喜欢
      • 2014-06-27
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-15
      • 2020-08-07
      • 1970-01-01
      相关资源
      最近更新 更多