簡體   English   中英

ASP.NET MVC4返回列表 <T> 從視圖回到模型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM