2011-01-09 2 views
0

Это, как я создаю мой выпадающий списокModelsState всегда недействителен при использовании Html.DropDownListFor

@Html.DropDownListFor(model => model.NewPageModel.AvailablePageModels, new SelectList(Model.NewPageModel.AvailablePageModels, "Text", "Value")) 

и это, как мой AvailablePageModels выглядит

public IEnumerable<SelectListItem> AvailablePageModels 
{ 
    get 
    { 
     foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) 
     { 
      foreach (var type in assembly.GetTypes()) 
      { 
       if (type.GetCustomAttributes(typeof(PageModelAttribute), true).Length > 0) 
       { 
        yield return new SelectListItem { Text = type.Name, Value = type.Name }; 
       } 
      } 
     } 
    } 
} 

и когда я отправляю свою форму к следующему действию мое модельное состояние всегда недействительно и ошибка возникает в значении AvailablePageModel? Может быть, я не могу использовать NewPageModel в качестве параметра таким образом?

public ActionResult Create([Bind(Prefix = "NewPageModel")] NewPageModel newPageModel, FormCollection collection) 
    { 
     if(ModelState.IsValid) { 
      // always invalid 
     } 
    } 

ответ

0

Вам нужно 2 поля, один для доступных параметров в раскрывающемся списке и один для хранения выбранного значения

Html.DropDownListFor(m => m.NewPageModel.SelectedModel, 
new SelectList(Model.NewPageModel.AvailablePageModels, "Text", "Value")) 
+0

Спасибо за помощь! – Marcus

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