Asp.net mvc 3 关于Html帮助程序,数据访问代码是否也进入帮助程序类?

Asp.net mvc 3 关于Html帮助程序,数据访问代码是否也进入帮助程序类?,asp.net-mvc-3,html-helper,Asp.net Mvc 3,Html Helper,我正在编写一个助手类来查询我的Zenfolio提要,返回并显示图像。现在,这段代码分为viewmodel和我的控制器中的代码。我想把它打包成一个助手类。所有的代码都会进入helper,还是我仍然会在不同的类中拆分代码,而helper只负责生成html?我在谷歌上搜索了一下,但没有找到我问题的答案 我不会从视图中进行任何数据访问。这听起来像是一个很好的操作用例,可以通过RenderAction方法重用代码。您可以使用[ChildActionOnly]属性将该操作标记为子操作,以确保不能直接从HTT

我正在编写一个助手类来查询我的Zenfolio提要,返回并显示图像。现在,这段代码分为viewmodel和我的控制器中的代码。我想把它打包成一个助手类。所有的代码都会进入helper,还是我仍然会在不同的类中拆分代码,而helper只负责生成html?我在谷歌上搜索了一下,但没有找到我问题的答案

我不会从视图中进行任何数据访问。这听起来像是一个很好的操作用例,可以通过
RenderAction
方法重用代码。您可以使用
[ChildActionOnly]
属性将该操作标记为子操作,以确保不能直接从HTTP请求调用该操作,并返回
部分视图
结果


HTML帮助程序实际上应该用于从ViewData或模型(即本例中的视图模型)中获取的数据生成HTML标记。

我不会从视图中进行任何数据访问。这听起来像是一个很好的操作用例,可以通过
RenderAction
方法重用代码。您可以使用
[ChildActionOnly]
属性将该操作标记为子操作,以确保不能直接从HTTP请求调用该操作,并返回
部分视图
结果


HTML帮助程序实际上应该用于从ViewData或Model(即本例中的视图模型)中获取的数据生成HTML标记。

在MVC模式中,模型(数据)、视图(HTML)和控制器(将模型提供给视图的内容)之间有明确的分离

若要回答您的问题,请选择“否”。在控制器中加载您的模型。在视图中显示它们。Html帮助程序应该只为您的视图生成Html


您可能想考虑使用A,它允许您为特定类型的每个模型使用相同的视图模板。

< P>在MVC模式中,模型(数据)、视图(HTML)和控制器之间有明显的分离(将模型赋予视图)。 若要回答您的问题,请选择“否”。在控制器中加载您的模型。在视图中显示它们。Html帮助程序应该只为您的视图生成Html


您可能想考虑使用A,它允许您为特定类型的每个模型使用相同的视图模板。

< P> HTMLHelp中的数据访问仅是痛苦。< /P> 我不幸地继承了一个项目,该项目的第二个开发人员将特殊SQL放入了HtmlHelpers中。HTMLHelper是由第一个开发人员编写的,并且ad-hoc SQL几乎抹杀了所有投入到面向服务的体系结构、ORM(二级缓存变得毫无价值)、工作单元模式(事务,毫无价值)和设计的各个方面的时间和精力。最终,这位第二位开发者不得不制作越来越大的HTMLHelper,以便不同的元素可以共享对数据的访问


这最初是为显示模式完成的,编辑是通过一堆丑陋的自定义javascript完成的。总之,当页面呈现时,它对数据库进行了600次同步调用。

在HtmlHelper中访问数据只是一种痛苦

我不幸地继承了一个项目,该项目的第二个开发人员将特殊SQL放入了HtmlHelpers中。HTMLHelper是由第一个开发人员编写的,并且ad-hoc SQL几乎抹杀了所有投入到面向服务的体系结构、ORM(二级缓存变得毫无价值)、工作单元模式(事务,毫无价值)和设计的各个方面的时间和精力。最终,这位第二位开发者不得不制作越来越大的HTMLHelper,以便不同的元素可以共享对数据的访问

这最初是为显示模式完成的,编辑是通过一堆丑陋的自定义javascript完成的。总之,当页面呈现时,它对数据库进行了600次同步调用