【问题标题】:How to do EnumDropdownListFor inside a for loop如何在 for 循环中执行 EnumDropdownListFor
【发布时间】:2014-12-20 17:47:12
【问题描述】:

我有以下 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 - 这是我正在使用的助手,它不是我自己的。

【问题讨论】:

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


    【解决方案1】:

    最后是我没有正确的语法,忘记了模型 => 部分。 #n00b

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

    【讨论】:

    • 你也应该对其他属性使用强类型帮助器@Html.HiddenFor(m =&gt; m.Routes[i].ID)@Html.CheckBoxFor(m =&gt; m.Routes[i].IsChecked) :)
    • 同意,谢谢。当我试图弄清楚事情时,我注意到这不是最好的方法。
    猜你喜欢
    • 2019-03-23
    • 2018-09-26
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多