我刚刚开始使用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'类型。
非常感谢任何帮助。 谢谢。
答案 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);
}