2012-04-10 2 views
1

Я изучаю MVC3, и я хочу, чтобы мой выпадающий список использовал colors в качестве данных здесь. Как мне это сделать?Как сделать @ Html.DropDownListДля этого кода?

Я знаю, что могу это сделать с @Html.DropDownList("colors"), но мне интересно, как это сделать с помощью @Html.DropDownListFor(....)? Я немного озадачен, и любая помощь плюс объяснение будет оценено.

Я размещаю все это на одной странице только для удобства, поэтому здесь это не приложение реального мира.

@functions { 

    private class Colors 
    { 
     public int ColorsId { get; set; } 
     public string ColorsName { get; set; } 
    } 

} 

@{ 
    var list = new List<Colors>() 
       { 
        new Colors() {ColorsId = 1, ColorsName = "Red"}, 
        new Colors() {ColorsId = 2, ColorsName = "Blue"}, 
        new Colors() {ColorsId = 3, ColorsName = "White"} 
       }; 
    var colors = new SelectList(list, "ColorsId", "ColorsName", 3); 
} 

@Html.DropDownListFor(???) 
+1

проверить мой ответ на эту тему. Это должно быть очень похоже. http://stackoverflow.com/questions/5097290/html-listboxfor-error-problem-asp-mvc-3/5176057#5176057 –

+0

@AllenWang спасибо. безусловно, отличный ответ. поддержал это. –

ответ

2
@Html.DropDownListFor(model => colors, colors) 
+0

спасибо. этот работал –

+0

Можете ли вы помочь мне понять выражение лямбда здесь в 'model => colors'? –

+0

Модель - это выражение, которое идентифицирует объект, содержащий отображаемое свойство, и мы возвращаем коллекцию SelectListItems, используемую для заполнения раскрывающегося списка – ionden

1

Необходимо определить тип модели в верхней части страницы. Укажите, какое свойство модели привязано к Drop Down, используя выражение лямбда.

@model MyModel 

@functions { 

    private class Colors 
    { 
     public int ColorsId { get; set; } 
     public string ColorsName { get; set; } 
    } 

} 

@{ 
    var list = new List<Colors>() 
       { 
        new Colors() {ColorsId = 1, ColorsName = "Red"}, 
        new Colors() {ColorsId = 2, ColorsName = "Blue"}, 
        new Colors() {ColorsId = 3, ColorsName = "White"} 
       }; 
    var colors = new SelectList(list, "ColorsId", "ColorsName", 3); 
} 

@Html.DropDownListFor(model => model.colors, colors) 
+0

Можете ли вы помочь мне понять выражение лямбда здесь в 'model => model.colors'? –

+0

Он сообщает 'DropDownListFor' привязку к свойству' colors' вашего класса модели. – Eranga

+0

Как вы узнали, что он смотрит на свойство модели ViewPage? (Я начинаю C#) –

0
<%= Html.DropDownListFor(x => x.ColorsId, new SelectList(list, "ColorsId", "ColorsName")) %> 
+0

это не сработало –

+0

извините, не прочитал его правильно.топ цветов вместо списка –

Смежные вопросы