Выпадающий список MVC не привязан к модели - PullRequest
0 голосов
/ 29 апреля 2010

Я пытаюсь настроить простой выпадающий список, но мне кажется, что я не могу привязать его к модели. Я использую Asp.Net MVC и nhibernate.

Мой раскрывающийся список объявлен так:

<%= Html.DropDownListFor(model => model.Project, (IEnumerable<SelectListItem>)ViewData["Projects"], " -- Select -- ", new { name = "Project" })%>

Я настроил список выбора так:

ViewData["Projects"] = new SelectList(projectRepository.GetAll(), "EntityGUID", "Name", editEntity.Project);

Кажется, это связывает список выбора с выпадающим списком, но значение SelectedValue не установлено. он отображается как значение по умолчанию --- Выберите ---

Также, когда я сохраняю эти данные, выпадающий список не привязывается к модели, я должен вручную установить объект, чтобы сохранить его:

entity.Project = projectRepository.GetById(new Guid(Request["Project"].ToString()));

Я считаю, что принял правильные сообщения, чтобы этот предмет был привязан непосредственно к моей модели. Я что-то упускаю здесь?

Большое спасибо за ваше время, Rod

Ответы [ 2 ]

7 голосов
/ 05 мая 2010

OMG Я нашел проблему ........

Мне потребовалось 3 дня, чтобы повернуть:

<%= Html.DropDownListFor(model => model.Aspect, (IEnumerable<SelectListItem>)ViewData["AspectTypes"])%>

в

<%= Html.DropDownListFor(model => model.Aspect.EntityGUID, (IEnumerable<SelectListItem>)ViewData["AspectTypes"])%>

model.Aspect **. ** EntityGUID Мне пришлось привязать выпадающий список к объекту guid, а не к самому объекту. Дох .... Я чувствую боль, много работы, чтобы наверстать упущенное.

Спасибо за ваше время.

0 голосов
/ 30 апреля 2010

Это всего лишь догадка, поскольку ваш код выглядит хорошо для меня, но я не думаю, что вам нужно включать четвертый параметр при определении вашего SelectList. Установка этого поля может нарушать нормальный ход вещей (переопределяя привязку вашей модели), и я никогда не связывал DropDownList и имел SelectedValue *1004*.

Попробуйте удалить это и посмотрите, как это происходит.

SelectList(projectRepository.GetAll(), "EntityGUID", "Name"); 

Также Я недавно задал вопрос о том, как реализовать DropDownList в MVC2, который может оказаться полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...