在局部视图中使用不同的模型

时间:2017-01-06 22:36:59

标签: asp.net-mvc views partial-views

我的视图view1.cshtml使用ClassA作为模型,view1中有部分视图..我希望部分视图使用{{1}作为模特。

可能吗?

编辑添加ClassB

classB

这里是Action方法:

public class Device
    {

        public int DeviceId { get; set; }

        public string SerialNo { get; set; }

        public string IMME { get; set; }

        public string RefNo { get; set; }

        public string Supplier { get; set; }

        public string Brand { get; set; }

        public string ModelNo { get; set; }

        public DateTime PurchaseDate { get; set; }

        public DateTime RegisterDate { get; set; }

        public string Notes { get; set; }

        public virtual ICollection<ContractsDevice> ContractsDevices { get; set; }
    }

这里是局部视图:

[HttpGet]
        public ActionResult AssignDevice()
        {
            //list of devices
            List<Device> dev = new List<Device>();
            dev.Add(new Device { Brand = "Samsung" });
            dev.Add(new Device { Brand = "SONY" });

            return PartialView();
        }

1 个答案:

答案 0 :(得分:1)

首先,您对视图实际需要的是List<Device>,而不仅仅是Device,因此您的观点应该是这样的:

@model System.Collections.Generic.List<Device>

<div class="modal-header">
    <h4 class="modal-title">Assign Device</h4>
</div>
<div class="modal-body">
    @foreach(var device in Model)
    {
        <div>@device.SerialNo</div>
    }
</div>
<div class="modal-footer">
    <button type="button" class="btn btn-primary">Save</button>
    <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
</div>

其次,您实际上将此称为儿童行为,而不仅仅是部分行动。所以你应该从父视图中调用它,如下所示:

@Html.Action("AssignDevice")

最后,不要忘记在操作中返回您的数据:

return PartialView(dev);