2013-10-25 5 views
0

Я создал эти жёстко прописанные dropdownlistfor в бритвенном MVC, но я хочу, чтобы создал это с петлей, как она содержит только целые значения:Числового Dropdownlistfor с петлей в бритве MVC 4

@Html.DropDownListFor(model => model.Bedrooms, new SelectList(new[] { new { ID = 1, Name = "1" }, new { ID = 2, Name = "2" }, new { ID = 3, Name = "3" }, new { ID = 4, Name = "4" }, new { ID = 5, Name = "5" }, new { ID = 6, Name = "6" }, new { ID = 7, Name = "7" } }, "ID", "Name"), "-Bedrooms-") 
+0

Не могли бы вы отмечаете свой ответ, если он вам помог? – Beejee

ответ

0

Я бы рекомендовал добавить дополнительное свойство вашей модели. И заполните Список в своем конструкторе, или вы можете поместить его непосредственно в получение дополнительного свойства и удалить набор. Чтобы это было проще, я просто поместил его в конструктор.

ViewModel

public class ViewModelName 
{ 
    ... 

    public ViewModelName() 
    { 
     PossibleAmountOfBedRooms = new List<SelectListItem>(); 

     for(int i; i < 8; i++) 
     PossibleAmountOfBedRooms.Add(new SelectListItem{Text=i.ToString(), Value=i.ToString()}); 
    } 

    public List<SelectListItem> PossibleAmountOfBedRooms {get; set;} 

    ... 
} 

Затем в View вы можете сделать следующее

@Html.DropDownListFor(model => model.Bedrooms, Model.PossibleAmountOfBedRooms , "-Bedrooms-") 

Существует и другой способ, но я не предпочитаю этот способ работы. Таким образом, вы бы построили выбор в своем представлении без использования вспомогательного метода (не строго типизированного). Если вы когда-либо изменили свою модель ViewModel на эту часть, если код мог выйти из строя, если вы не заметили.

В вашем Вид:

... 
<select Id="Bedrooms" name="Bedrooms"> 
    <option value="">-Bedrooms-</option> 
    @for(int i; i < 8; i++) 
    { 
     <option value="@i">@i</option> 
    } 
</select> 
... 
Смежные вопросы