我可以将其他模型中的字段添加到MVC5中的视图吗?

我有一个与模型关联的视图:ICS_Orders。此视图用于用户打印带有记录的表单。

用户已请求在打印视图上显示一个新字段。该字段不是ICS_Orders模型的一部分,而是ICS_Supplies。我似乎找不到关于如何使该字段显示在视图上的任何信息-来自其他模型。

查看代码:

@model IEnumerable<ICS20web.Models.ICS_Orders>

<table class="table">
<tr>
<th>PO / Requisition Number</th>
<th>Units Ordered</th>
<th>Supply Name</th>
<th>**New Field from Different Model Here**  </th>
</tr>

@foreach (var item in Model)
        {
    <tr>
    <td>@Html.DisplayFor(modelItem => item.RequisitionNumber)</td>
    <td>@Html.DisplayFor(modelItem => item.Unitsordered)</td>
    <td>@Html.DisplayFor(modelItem => item.Supply)</td>
    <td>**New Field Display Resuls** <td>
    </tr>
         }
     </table>

如您所见,该视图适用于

@model IEnumerable<ICS20web.Models.ICS_Orders>

新的请求字段(Old_ItemID)用于:

@model IEnumerable<ICS20web.Models.ICS_Supplies> 

(WHERE item.Supply(来自当前模型:ICS_Orders)= item.Description(新模型:ICS_Supplies)

有没有办法做到这一点?还是我必须一直追溯到我的数据库和新模型中创建视图?

编辑:

下面是我的ICS_Orders模型

public class ICS_Orders
{      
    [Key]
    public int? LineID { get; set; }

    [Required]
    public string RequisitionNumber { get; set; }

    public int SuppliesID { get; set; }

    [Required]
    public int Unitsordered { get; set; }

    public string Supply { get; set; }

    public Nullable<int> UnitsDelivered { get; set; }

}

如何添加属性以容纳ICS_Supplies字段“ Old_ITemID”?我尝试了以下操作,但没有用。

public virtual DbSet<ICS_Supplies> ICS_Order { get; set; }

public string Old_ItemID { get; set; }

根据建议,我需要在控制器中做什么以“设置此值”。

controlcls 回答:我可以将其他模型中的字段添加到MVC5中的视图吗?

您有两种选择。

  1. 在控制器中创建一个新列表OrdersWithSupplies并将其用作模型。您将使用Order和Supply数据填充OrderWithSupply类。

  2. 创建一个新的视图模型,该模型同时包含订单列表和耗材列表。如果它们的长度相等,则可以遍历其中之一,并使用当前索引来检索正确的供应数据。

说明:

@for(var i=0;i<Model.Orders.Length;i++)
        {
    <tr>
    <td>@Html.DisplayFor(m => m.Orders[i].SomeOrderProp)</td>
    <td>@Html.DisplayFor(m => m.Supplies[i].SomeSupplyProp)</td>

如果您清楚地展示了您的模型和控制器,我将能够进一步缩小答案的范围:)

,

实际将您的“新字段显示结果”存储在ViewBag.Results中,如下所示

ViewBag.Results = New Field Display Resulst.Tolist();

也剃刀

<ul>
@foreach (var Result in ViewBag.Results )
{
    <li>@Result</li>
}
</ul>
本文链接:https://www.f2er.com/3150631.html

大家都在问