3
public class PolicyDetail
{
public Policy Policy { get; set; }
public IEnumerable<Insured> Insured { get; set; }
public IEnumerable<Risk> Risk { get; set; }
public IEnumerable<Construction> Construction { get; set; }
}
建築看起來就像這樣:
public class Construction
{
public int ConstructionID { get; set; }
public string ConstructionType { get; set; }
}
而在DB,只有4個行。這基本上是一個枚舉。
和風險內是這樣的屬性:
public int ConstructionID { get; set; }
之前發送的模式來看,我們填補了內PolicyDetail,其中保險與風險是政策的孩子每個對象。建築每次都裝滿了它的所有四行。
因此,在模型中,我們列出所有風險。當我們顯示它們時,我們想要顯示Constructions作爲下拉列表,並將選定的值設置爲Risk.ConstructionID中的值。
令人驚訝的是,這些簡單的下拉菜單可以在MVC中燒盡多少心臟。
@foreach (var item in Model.Risk)
{
... Other items in Risk
<div class="form-group">
@Html.Label("Construction Type", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList(?????????)
</div>
</div>
... Other items in Risk
}
我如何填補,從
Model.Constrution
下拉與所有的項目和所選擇的項目設置什麼在
item.ConstrucitonID
?
謝謝!
編輯:
這裏的工作解決方案:
@Html.DropDownList("ConstructionType", new SelectList(Model.Construction.Distinct().ToList(), "ConstructionID", "ConstructionType", item.ConstructionID))
好,謝謝。看我的編輯。 –
我們正在接近!我收到這個錯誤:DataBinding:'System.String'不包含名稱爲'ConstructionID'的屬性。 –
這是因爲在你選擇的時候,你選擇的是一個字符串的ConstructionType。選擇具有ConstructionID和ConstructionType的整個對象 –