2013-12-09 65 views
0

我是ASP.NET MVC的新手,有以下情況。我需要一些幫助來創建適當的模型或視圖。ASP.NET MVC4返回列表<T>從查看回到模型

我現在有下面的模型。

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> 
    } 

現在如何使視圖返回與選擇演員的數量模型?

在此先感謝!

回答

0

如果您打算將這些元素放入一個表單中,那麼這些元素將回發到服務器,然後您可以爲您的類型創建一個自定義編輯器模板。如果你這樣做,那麼在你的枚舉中使用Html.EditorFor。

在您的視圖文件夾中創建EditorTemplates文件夾,然後添加一個新的強類型局部視圖。將其命名爲ExtraItem。將該標記放置在您的枚舉中的每個單獨項目的視圖中。

當你使用:

@Html.EditorFor(x=> x.ExtraItems) 

你會得到的輸出是這樣的:

<input id="ExtraItems_0__name" name="ExtraItems[0].name" type="hidden" value="aName"> 

聲明數組風格的名字。當表單回傳時,服務器將正確識別該枚舉。

0

創建一個EditorTemplateExtraItem模型。 編輯器模板的內容與循環內容基本相同。

更換循環用下面的語句:

@Html.EditorFor(x => x.ExtraItems) 

這應該這樣做。

相關問題