asp.net-mvc - ASP.NET MVC 模型与选择列表的 ViewData

标签 asp.net-mvc model viewdata selectlist multi-select

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

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

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

这里有最佳实践吗?即使是对其中任何一个的利弊建议也将不胜感激。

最佳答案

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

关于asp.net-mvc - ASP.NET MVC 模型与选择列表的 ViewData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2342680/

相关文章:

ios - 传递数据并显示该模型

c# - 如何将 EF 类型名称传递到方法参数中?

asp.net-mvc - 当我与 fiddler 进行检查时,VS2013 RTM每秒发出一次信号R请求

jquery - 将 jquery 中的事件绑定(bind)到替换的 html

asp.net-mvc - ASP.NET MVC ViewData 和 View 模型最佳实践

umbraco - 如何将 ViewData 和 ViewBag 与 Umbraco 表面 Controller 一起使用

c# - 将 ViewData 传递给部分 View

c# - mvc4 lambda : Add separate query to object model?

python - 如何迭代 ManyToManyField?

oop - 模型-服务解耦 : what if my model needs a service?