【问题标题】:Is the best approach a typed or not typed view in ASP.NET MVC?最佳方法是 ASP.NET MVC 中的类型化视图还是非类型化视图?
【发布时间】:2008-09-27 01:30:44
【问题描述】:

在 ASP.NET MVC 中,如果您在代码隐藏中定义视图应该期望什么样的数据,则可以选择是否具有类型化视图。但也可以不定义它,只传递任何类型的数据以在 ViewData 容器中查看。

这里最好的模型是什么,或者我应该根据我们讨论的数据类型来混合(也许只是确保有对视图的功能至关重要的数据类型化和其他数据不类型化?)?我真的不明白为什么这里有一个选项......

【问题讨论】:

  • 代码隐藏? ;) -

标签: asp.net-mvc


【解决方案1】:

我建议始终使用强类型 ViewData... 这样您就可以进行编译时检查、智能感知、不必在视图中进行强制转换,并且能够更轻松地重构代码。

【讨论】:

    【解决方案2】:

    该框架的早期版本要求您在 ViewData 字典和强类型视图模型之间进行选择。

    现在您可以将两者混合使用。将此与预览版 5 的一些新功能(例如 ModelState、验证和自动绑定到表单字段)结合起来,将 ViewPage 用于正在呈现的视图中的主模型变得更加引人注目。

    您仍然可以将数据添加到控制器管道中的字典中,并在稍后使用 ViewData["key"] ... 甚至更好的来自 MvcContrib 的 ViewData.Get("key") 请求它。

    【讨论】:

      【解决方案3】:

      我以前也有这个想法。在我的站点中,我曾经对视图进行强类型化,当视图几乎是您正在显示的类的 1:1 模型时。就像显示所有用户的列表一样,我输入到 List,这样我就不需要随时转换以获得正确的数据类型。

      在没有具体的观点中,我只是将强类型转换为最“重”/使用的类型。

      在表单中,表单本身就是返回View(form)时视图的类型; ....

      【讨论】:

        猜你喜欢
        • 2011-02-23
        • 2010-11-11
        • 2011-09-16
        • 2011-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多