DropDownList中的预选

时间:2011-08-24 16:43:10

标签: asp.net-mvc-3

我刚刚开始使用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 :(得分:0)

如果您正在使用强类型视图并查看模型,请不要使用任何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);
}