更改MVC ListBoxFor项目之间的行为

时间:2012-06-08 17:22:45

标签: asp.net-mvc binding

我想知道是否有人能解释两个ASP.Net MVC 3项目之间的功能差异。

在这两个项目中,我都有一个包含以下内容的视图模型:

public List<int> Questions;

在这两个项目中,我有以下ListBoxFor代码:

@Html.ListBoxFor(x => x.Questions, new MultiSelectList(ViewBag.Questions as List<MyStandardLib.Mvc.Attribute>, "Id", "Name", @Model.Questions), new { @class = "ui-field-multiselect", style = "width: 250px;" })

功能上的差异在于,运行时,一个项目正确绑定现有的选定问题,另一个项目不绑定,并将所有问题显示为未选中。单步执行代码,List将在视图中填充并正确传递给MultiSelectList构造函数,但不会将值设置为选中。

这真令人沮丧。

1 个答案:

答案 0 :(得分:2)

将您的ViewBag.Questions变量名称更改为ViewBag.AvailableQuestions。有时,渲染器会对您所指的内容感到困惑。