如何在for循环中执行EnumDropdownListFor

时间:2014-12-20 17:47:13

标签: c# .net asp.net-mvc for-loop enums

我有以下for循环,其中Type是枚举。我想遍历表单,并为每个路由允许下拉类型。

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

我似乎无法弄清楚如何让MVC5 EnumDropDownListFor助手在for循环中工作。虽然我认为如果有人遇到同样的问题并发现了替代方案或者让他们工作,我可能会问这些问题。

EnumDropDownListFor(MSDN)http://msdn.microsoft.com/en-us/library/dn550750(v=vs.118).aspx - 这是我正在使用的助手,它不是我自己的。

1 个答案:

答案 0 :(得分:0)

结果是我没有正确的语法,忘记了模型=&gt;部分。 #的n00b

@Html.EnumDropDownListFor(model => Model.Routes[i].Type, "None")