当然一如既往你开始通过定义将代表信息的视图模型,你想显示具体的看法:
public class MyViewModel
{
public string[] SelectedItems { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
}
然后控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyViewModel
{
SelectedItems = new[] { "1", "3" },
Items = new[]
{
new SelectListItem { Value = "1", Text = "Item 1" },
new SelectListItem { Value = "2", Text = "Item 2" },
new SelectListItem { Value = "3", Text = "Item 3" },
}
};
return View(model);
}
}
终于在您的强类型视图:
<%= Html.ListBoxFor(
x => x.SelectedItems,
new SelectList(Model.Items, "Value", "Text")
) %>
如预期的那样项目1和项目3将在列表框呈现时预选。
优秀,按预期工作。当我向老板询问这个方法时,事实上我曾经做过,他说MVC模型应该是无状态的,我们不应该跟踪这样的数据。相反,它应该在View和Model之间传递数据,并处理仅传递的内容。那是对的吗?谢谢。 –