如何显示不属于我的模型的对象?

时间:2014-05-19 15:52:32

标签: html asp.net-mvc razor view listbox

我正在ASP MVC 4中做一个Web项目。
我有一个强类型(模型:产品)视图(ProductIndex.cshtml),我想在此视图中显示所有商家的列表。

什么是最好的方法?
- 在我的Product类(Icollection)中创建一个新属性?
我不太喜欢这种方法,因为产品不应该有商家名单...

- 创建一个部分View类型(IEnumerable)并从我的ProductIndex视图中调用它,并将ViewData对象作为参数?
我不确定我是否能够使用这种方法在列表框中显示模型(IEnumerable)...我想我只能使用属性而不是模型填充列表框...
告诉我吧!

谢谢你

public class Product
    {
        public int ProductID { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public int MerchandID { get; set; }


    }

 public class ProductViewModel
    {
        public int ProductID { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public int MerchandID { get; set; }

        public  ICollection<Merchant> Lesmarchands { get; set; }
    }

2 个答案:

答案 0 :(得分:1)

public class ProductViewModel
{
    public Product Product {get;set;}
    public List<Merchant> Merchants {get;set;}
}

答案 1 :(得分:0)

我不认为拥有与您的产品视图模型相关联的商家列表是不好的。 特别是如果需要两者来满足您的观点需求。我倾向于在我的模型之上创建视图模型作为实际领域模型之上的抽象。

当然,稍微不同的方法是通过Ajax加载商家并将其与模型中的产品断开连接。