Проблема привязки модели с DropDownListFor - PullRequest
0 голосов
/ 20 августа 2011
@Html.DropDownListFor(model => model.Activity.ActivityType, new 
     SelectList(Model.ActivityTypes, "ActivityTypeId", "Name") )

На мой взгляд, выпадающий список выше.При отправке в моей форме выбранный ActivityType не может привязаться к свойству Model.Activity.ActivityType в моей модели.

Ошибка при невозможности преобразования строки в ActivityType.

Я предполагаю, что это потому, что он просто пытается связать свойство Name для ActivityType, а не весь объект.

Что мне нужно сделать, чтобы при отправке формы выбранный ActivityType был правильно связан смодель?

Спасибо

1 Ответ

6 голосов
/ 20 августа 2011

Свойство, используемое в лямбда-выражении в качестве первого аргумента для помощника DropDownListFor, должно быть скалярным значением (строка, целое число, ...). Не следует использовать сложные типы, так как элемент <select> в форме HTML отправляет только одно значение. Поэтому вам может потребоваться привязать соответствующее свойство id:

@Html.DropDownListFor(
    model => model.Activity.ActivityType.ActivityTypeId, 
    new SelectList(Model.ActivityTypes, "ActivityTypeId", "Name")
)
...