MVC - 一起显示详细信息和列表视图

时间:2016-08-15 19:47:14

标签: asp.net-mvc listview view

在我的详细信息视图中,我想显示另一个模型的列表。 - 我有可以分配设备的位置。我想查看位置的详细信息,并查看分配给它的设备列表。我一直在努力解决这个问题,并尝试了很多方法。似乎应该有一个简单的解决方案,但我只是在构建列表时遇到了障碍。对于我的最新方法,我创建了自己的ViewModel。

ViewModel - DeviceLocationIndex模型

public class DeviceLocationIndex
{
    public IEnumerable<Device> Devices { get; set; }
    public IEnumerable<Location> Locations { get; set; }
    public IEnumerable<DeviceLocation> DeviceLocations { get; set; }

    public List<Device> locationDevices { get; set; }
}

我创建了一个局部视图 - _DeviceIndex放在我的位置详细信息视图的底部。

<div>
@Html.Partial("_DeviceIndex", Model.Devices)
</div>

在我的LocationController中我有

 public ActionResult Details(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }

        Location location = db.Locations.Find(id);
        if (location == null)
        {
            return HttpNotFound();
        }

        var viewModel = new DeviceLocationIndex();
        viewModel.Locations = db.Locations
            .Include(x => x.DeviceLocations.Select(d => d.Device))
            .Where(x => x.LocationID == id) ;

        var locationID = location.LocationID;

我应该解释一下有三个表:location,DeviceLocation和Device。下一段代码向我显示了DeviceLocation表中的记录(此位置具有这些设备)。

        ViewBag.LocationID = locationID;
        viewModel.DeviceLocations = viewModel.Locations.Where(
            x => x.LocationID == locationID).Single().DeviceLocations;
        int count = viewModel.DeviceLocations.Count();
        while (count != 0)
        {


        }

我现在处于亏损状态。如何根据我所知道建立设备列表?那么如何将Detail部分和List部分所需的信息一起传递给View?

0 个答案:

没有答案