我是MVC的新手。
我有两个表:第一个存储供应商的信息,另一个存储订单详细信息。我想在下拉列表中使用供应商表的值。
@model Ore.Domain.Entities.OrderDetail
@{
ViewBag.Title = "";
}
<h2> </h2>
@using (Html.BeginForm())
{
<div>vendor: @Html.DropDownListFor(x=>x.Vendor,’**how to use the value from another entities or models?** ’)</div>
<div>Contract Number: @Html.EditorFor(x=>x.ContractNo)</div>
谢谢
答案 0 :(得分:1)
这是一个很好的例子,当你需要脱离DO并创建一个混合视图时,它包含复合DO,如父项和List项目列表或其组合。它越像你的DO,就越有可能利用自动映射器等映射技术。
答案 1 :(得分:0)
只为您的视图特别介绍一个模型。我们称之为OrderDetailViewModel:
public class OrderDetailViewModel
{
public Ore.Domain.Entities.OrderDetail Order {get;set;}
public IEnumerable<SelectListItem> Vendors {get; set;}
}
然后在你看来:
@model OrderDetailViewModel
<h2> </h2>
@using (Html.BeginForm())
{
<div>vendor: @Html.DropDownList("Vendor", Model.Vendors)</div>
<div>Contract Number: @Html.EditorFor("ContractNo", Model.ContractNo)</div>
或者只是通过ViewBag传递供应商: 在控制器中:
ViewBag.Vendors = // populate items as new List<SelectListItem>()
在视图上:
<div>vendor: @Html.DropDownListFor(n=>n.Vendor, (List<SelectListItem>)ViewBag.Vendors)</div>