代码之家  ›  专栏  ›  技术社区  ›  Fenton

用于选定列表的ASP.NET MVC模型与ViewData

  •  6
  • Fenton  · 技术社区  · 15 年前

    我有一个asp.net mvc应用程序,它有很多下拉列表和多选列表。基本上,有很多选择。

    我的问题是:将这些列表作为模型的一部分或作为viewdata传递给视图更好吗?

    我目前将它们作为viewdata传递,因为我在模型上并不真正需要它们,而且它们对于在模型上传递似乎很庞大(我得到一个或多个选定的项,这是我真正需要的全部)。另一方面,viewdata需要强制转换视图,这不如强类型模型好。

    这里有最佳做法吗?即使是对其中任何一个的赞成和反对的建议也会受到赞赏。

    2 回复  |  直到 15 年前
        1
  •  6
  •   zihotki    15 年前

    我建议您使用viewmodels传递数据。将viewdata与“magic strings”一起使用很容易出错,我更喜欢使用intellisense,而不是试图记住“magic strings”。您不需要在控制器中创建选择器列表。只要用一些IEnumerable和 ToSelectList 视图中mvccontrib的扩展方法。

        2
  •  -1
  •   DM.    15 年前

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