C# ASP.NET MVC4返回列表<;T>;从视图返回到模型
我是ASP.NETMVC新手,有以下情况。我需要一些帮助来创建正确的模型或视图 我现在有下面的型号C# ASP.NET MVC4返回列表<;T>;从视图返回到模型,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我是ASP.NETMVC新手,有以下情况。我需要一些帮助来创建正确的模型或视图 我现在有下面的型号 public class ExtrasModel { public List<ExtraItem> ExtraItems { get; set; } public DateTime FlightArrivalTime { get; set; } public PickupInfoType PickupInfo {get; set; } } public cl
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; }
}
公共类外部模型
{
公共列表外部项{get;set;}
公共日期时间FlightArrivalTime{get;set;}
公共PickupInfoType PickupInfo{get;set;}
}
公共类附加项
{
公共字符串ExtraInfo{get;set;}
public int prodetraid{get;set;}
公共字符串名称{get;set;}
公共字符串说明{get;set;}
公共双成本{get;set;}
公共int CostType{get;set;}
公共字符串货币{get;set;}
公共整数数量{get;set;}
公共双总成本{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>
}
@foreach(Model.ExtrasList中的变量extra)
{
//不确定要在这里放什么代码
@DropDownListFor(p=>p.ExtrasList,新建SelectList(列表项,“值”,“文本”,extra.Quantity),新建{id=extra.prodetraid})
@额外姓名
@string.Format(“{0}{1}”,extra.Cost,extra.Currency)
}
现在,如何使视图返回带有为额外选择的数量的模型
提前谢谢 为
外部项
模型创建一个编辑器模板。
编辑器模板的内容基本上与循环的内容相同
用以下语句替换循环:
@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">
请注意数组样式名称。当表单发回时,服务器将正确识别可枚举项