[英]ASP.NET MVC4 return list<T> from view back to model
我是ASP.NET MVC的新手,具有以下情況。 我需要一些幫助來創建正確的模型或視圖。
我目前有以下型號。
public class ExtrasModel
{
public List<ExtraItem> ExtraItems { get; set; }
public DateTime FlightArrivalTime { get; set; }
public PickupInfoType PickupInfo {get; set; }
}
public class ExtraItem
{
public string ExtraInfo { get; set; }
public int ProdExtraId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public double Cost { get; set; }
public int CostType { get; set; }
public string Currency { get; set; }
public int Quantity { get; set; }
public double TotalCost { get; set; }
}
額外物品清單將從數據庫中獲取。
這就是我的觀點:
@foreach(var extra in Model.ExtrasList)
{
<tr>
<td>
//Not sure what code to put here
@Html.DropDownListFor(p => p.ExtrasList, new SelectList(listItems, "Value", "Text", extra.Quantity), new { id = extra.ProdExtraId })
</td>
<td>@extra.Name</td>
<td>@string.Format("{0} {1}", extra.Cost, extra.Currency)</td>
</tr>
}
現在如何使視圖返回帶有額外選擇數量的模型?
提前致謝!!
為ExtraItem
模型創建一個EditorTemplate 。 編輯器模板的內容與循環的內容基本相同。
用以下語句替換循環:
@Html.EditorFor(x => x.ExtraItems)
這應該做。
如果要將元素放入表單中,該表單將回發到服務器,則可以為類型創建自定義編輯器模板。 如果這樣做,則將Html.EditorFor與您的枚舉一起使用。
在視圖文件夾中創建一個EditorTemplates文件夾,然后添加一個新的強類型部分視圖。 將其命名為ExtraItem。 將此枚舉中每個單獨項目的標記放入此視圖中。
使用時:
@Html.EditorFor(x=> x.ExtraItems)
您將獲得如下輸出:
<input id="ExtraItems_0__name" name="ExtraItems[0].name" type="hidden" value="aName">
注意數組樣式名稱。 將表格回發后,服務器將正確識別可枚舉。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.