MVC视图 - 如何显示对象集合的“类别”,而不仅仅是对象本身

时间:2009-05-22 15:35:08

标签: asp.net-mvc entity-framework

使用ASP MVC和实体框架。在视图中,您有一个页面声明,指定此视图的模型将是一个实现IEnumerable的集合。假设该集合持有Car对象,这些对象仅来自Ford(福特是该类别)。

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<detelete.Models.Car>>" %>

此福特汽车列表是通过LINQ to Entities查询生成的。 EF对象thingee意识到汽车与制造商的关系(我称之为类别)

            var dat = ent.CarSet.Where(m => m.Manufacturer.Name == nm);

        List<Car> cars = dat.ToList<Car>();
        return View("ListingByManufacturer", cars);

因此,在视图中,我显示了所有福特汽车的列表。我有正确显示所有汽车属性的视图,但没有办法显示汽车来自的类别(本例中的制造商)。我已经看到一些EF / MVC示例有两个foreach循环,顶部一个显示制造商 - 但感觉很糟糕。

似乎应该很简单,但我被卡住了......

1 个答案:

答案 0 :(得分:2)

您只需通过控制器中的ViewData传递制造商名称:

ViewData["Manufacturer"] = nm;

或者使用另一个对象作为包含汽车和制造商名称的模型

public class CategoryViewModel {
     public string ManufacturerName { get; set; }
     public List<Car> Cars { get; set; }
}

并将该类的实例传递给视图。