ModelsState всегда недопустимо при использовании Html.DropDownListFor - PullRequest
0 голосов
/ 09 января 2011

Так я создаю свой выпадающий список

@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
        }
    }

1 Ответ

0 голосов
/ 09 января 2011

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

Html.DropDownListFor(m => m.NewPageModel.SelectedModel, 
new SelectList(Model.NewPageModel.AvailablePageModels, "Text", "Value"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...