Предварительный выбор в DropDownList - PullRequest
0 голосов
/ 24 августа 2011

Я только начинаю с MVC3, и у меня следующая ситуация:

Страница начальной регистрации моего приложения среди других элементов управления содержит раскрывающееся меню.Когда пользователь заполнил форму, данные формы сохраняются в сеансе и переходят к следующему шагу.Они также могут вернуться к исходному шагу для повторного редактирования, и в этом случае мне нужно показать выпадающее меню с предварительно выбранным соответствующим значением.

Мой код выглядит следующим образом:

Controller:
public ActionResult Index()
{
   var model = new CompanyDetailsModel();
   BindDropDownLists(model);
   //IF WE HAVE A SESSION THEN PREFILL THE VALUES
   if(MySession.Current.IFA!=null)
   model = EditIFAProfileService.returnCompanyDetailSession(MySession.Current.IFA);
   return View("CreateCompanyDetails", model);
}

I am getting the expected values from the model, so for example the 
value model.Salutation is equal to an integer.

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

@Html.DropDownListFor(model => model.SalutationValue, Model.SalutationItems, 
"Please Select", new { @tabindex = "1" })

Если я установлю значение модели SalutationValue в int, то получуошибка, указывающая, что

Элемент ViewData, имеющий ключ, имеет тип 'System.Int32', но должен иметь тип 'IEnumerable'.

Любая помощь будет принята с благодарностью.Спасибо.

1 Ответ

0 голосов
/ 24 августа 2011

Не используйте ViewData, если вы работаете со строго типизированными представлениями и просматриваете модели, так как это может привести к конфликту.Просто установите для свойства SalutationValue какое-то заданное значение.Вот пример:

public ActionResult Index()
{
    var model = new CompanyDetailsModel();
    model.SalutationItems = ...
    if (MySession.Current.IFA != null)
    {
        model.SalutationValue = MySession.Current.IFA;
    }
    return View("CreateCompanyDetails", model);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...