0

有没有办法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; }
  }
}

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

4

1 回答 1

0

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

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

希望这会有所帮助,如果没有,请告诉我。

于 2013-03-23T12:17:52.580 回答