C# 如何在for循环中执行EnumDropdownListFor
我有以下for循环,其中类型是枚举。我想在表单中循环,对于每个路由,允许下拉类型C# 如何在for循环中执行EnumDropdownListFor,c#,.net,asp.net-mvc,for-loop,enums,C#,.net,Asp.net Mvc,For Loop,Enums,我有以下for循环,其中类型是枚举。我想在表单中循环,对于每个路由,允许下拉类型 @for (int i = 0; i < Model.Routes.Count; i++) { @Html.Hidden("Routes[" + index + "].Id", Model.Routes[i].Id) @Html.EnumDropDownListFor("Routes[" + index + "].Id", Model.Routes[i].Typ
@for (int i = 0; i < Model.Routes.Count; i++)
{
@Html.Hidden("Routes[" + index + "].Id", Model.Routes[i].Id)
@Html.EnumDropDownListFor("Routes[" + index + "].Id", Model.Routes[i].Type)
@Html.Hidden("Routes[" + index + "].Name", Model.Routes[i].Name)
@Html.CheckBox("Routes[" + index + "].IsChecked", Model.Routes[i].IsChecked)
@Model.Routes[i].Name<br />
index++;
}
public class RouteModel
{
public Guid Id { get; set; }
public RouteType Type { get; set; }
public int Number { get; set; }
public string Name { get; set; }
public bool IsActive { get; set; }
public bool IsChecked { get; set; }
}
public enum RouteType
{
Transit,
Air,
Bus
}
@for(int i=0;i
索引++;
}
公共类RouteModel
{
公共Guid Id{get;set;}
公共路由类型{get;set;}
公共整数{get;set;}
公共字符串名称{get;set;}
公共bool IsActive{get;set;}
已检查公共布尔值{get;set;}
}
公共枚举路由类型
{
过境,,
空气,
公共汽车
}
我似乎不知道如何使MVC5 EnumDropDownListFor助手在for循环中工作。看起来我可能做不到,但我想我会问一下,万一有人有同样的问题,发现了替代方案或让他们的工作
EnumDropDownListFor(MSDN)-这是我正在使用的帮助程序,它不是我自己的。结果是我没有正确的语法,忘记了模型=>部分#n00b
您还应该对其他属性使用强类型帮助程序
@Html.HiddenFor(m=>m.Routes[i].ID)
和@Html.CheckBoxFor(m=>m.Routes[i].IsChecked)
:)同意,谢谢。我注意到,当我试图解决问题时,这并不是最好的方法。
@Html.EnumDropDownListFor(model => Model.Routes[i].Type, "None")