2014-10-09 3 views
0

Я хотел бы отправить выбранный вариант выпадающего списка в model.Feit Предполагая, мне нужен DropDownListFor, затем выберите таблицу, затем выпадающий список ...?C# MVC ASP.NET DropDownListFor

//here's my drop down menu in my controller 
List<SelectListItem> items = new List<SelectListItem>(); 
items.Add(new SelectListItem { Text = "Owner", Value = "0", Selected = true }); 
items.Add(new SelectListItem { Text = "Leader", Value = "1" }); 
ViewBag.items = items; 
//this works fine, but the selected option has to be inserted into my database when submitted 




//the first line shows the label 
<div class="editor-label">@Html.LabelFor(model => model.Feit)</div> 
//the second line needs to show as a dropdownlist with the 2 options above here 
<div class="editor-field">@Html.DropDownListFor(model => model.Feit, "items")</div> 
//when the option is selected, and submit is pressed this has to be sent to the db 
// this works for all other fields, but my syntax is wrong at , "items" 
+0

Пожалуйста, объясните более подробно, что вы пытаетесь сделать и в чем проблема. –

+0

В верхней части выпадающего списка (в контроллере) В нижней части (на моей странице create.cshtml) должно быть выпадающее меню с этими параметрами. Эти, когда они выбраны, должны быть помещены в модель => model.Feit. Однако, я думаю, что мой синтаксис не соответствует последней строке. – SNT

ответ

0

Поскольку вы уже заселены в IEnumerable<SelectListItem> в вашем viewbag, вам просто нужно получить к нему доступ и бросьте, чтобы обеспечить правильную перегрузку DropDownListFor используются:

@Html.DropDownListFor(model => model.Feit, (IEnumerable<SelectListItem>)ViewBag.items) 

model.Feit должно быть типа int или что-то, что может удерживать значение выбранного элемента.

+0

Правильно, выпадающие работает сейчас .. не проверял, действительно ли он отправляет его в БД, но я предполагаю, что это произойдет. Спасибо большое Аарону! – SNT

+0

Errormessage: «Элемент ViewData, имеющий ключ« Feit », имеет тип« System.Int32 », но должен иметь тип« IEnumerable ».» Я также попробовал строку, не работает. Любые другие внушения? – SNT

+0

@ user3712713 Показать вашу ViewModel, содержащую декларацию «Feit» и то, как выглядит ваше объявление «DropDownListFor». – AaronLS

0

Используйте этот

@Html.DropDownListFor(m => m.Feit, new SelectList(ViewBag.items, "Id","Name"),"Select") 
+0

«" не содержит свойства с именем «Id» «». Что именно означает «id» в вашем примере, первый вариант в раскрывающемся меню? – SNT

+0

Это всего лишь Option Labels? Вы использовали вышеуказанный код? Не работает ли он? –

+0

Это не просто метки, на самом деле это имена свойств. Когда вы указываете '' Id '', тогда он ожидает, что каждый элемент в' View.items' содержит свойство '.Id'. – AaronLS

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