2014-12-20 117 views
0

我有以下for循環,其中Type是一個枚舉。我想通過表單循環,併爲每個路線允許下拉類型。如何在for循環中執行EnumDropdownListFor

@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 - 這是我正在使用的幫手,它不是我自己的。

回答

0

因爲我沒有正確的語法,忘了模型=>部分。 #的n00b

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

而且你應該使用強類型的輔助的其他屬性也'@ Html.HiddenFor(M => m.Routes [I] .ID)'和'@ Html.CheckBoxFor(M = > m.Routes [i] .IsChecked)':) –

+0

同意,謝謝。我注意到,當我試圖弄清楚事情時,這不是最好的方法。 – devfunkd