7

我有一个带有很多下拉列表和多选列表的 ASP.NET MVC 应用程序。本质上,有很多选项列表。

我的问题是;将这些列表作为模型的一部分传递给视图,还是作为 ViewData 更好?

我目前将它们作为 ViewData 传递,因为我在模型上并不真正需要它们,而且它们对于在模型上传递似乎可能很笨重(我得到了选定的一个或多个项目,这确实是我所需要的)。不利的一面是,ViewData 需要对 View 进行强制转换,这不如强类型模型好。

这里有最佳实践吗?甚至对其中任何一个的利弊建议都将不胜感激。

4

2 回答 2

6

我建议您使用 ViewModels 来传递该数据。将 ViewData 与“魔术字符串”一起使用很容易出错,我更喜欢使用智能感知而不是尝试记住“魔术字符串”。而且您不需要在控制器中创建 SelectLists。只需使用一些 IEnumerable 并在视图中使用来自 MvcContrib 的ToSelectList扩展方法。

于 2010-02-26T16:13:30.217 回答
-1

如果我只有 1 个要传递给视图的项目,我倾向于使用 ViewData。因此,如果您要发送多个对象并需要填充多个下拉列表,我将创建一个视图模型。我还将在 Web 应用程序项目中创建该视图模型,因此如果您的视图模型具有 SelectList 对象,您将不需要在域模型中引用 MVC dll。

于 2010-02-26T16:35:18.360 回答