HTML帮助程序是Business Logic的一个地方吗?

时间:2010-08-07 13:01:43

标签: c# asp.net-mvc html-helper

我之前问过this question关于业务逻辑和表示逻辑的问题,它让我思考..我认为在查看View中的代码时更容易发现可疑的做法,因为当我看到它时我会自动怀疑。通常它没关系,因为它是表示逻辑,但我总是往往看得更近。

但是当我在HTML帮助器中时,我看起来并不那么接近。事实上,我知道我之前已经完成了,并且我已经告诉其他人将业务逻辑转移到Helper中。但是这样吗?

我现在的猜测是,它不是..我认为助手的工作与视图的工作相同。仅限演示。你们觉得怎么样?

4 个答案:

答案 0 :(得分:13)

HtmlHelper应该只关注将相关的html输出到您的视图中,并且不应该了解任何业务规则。这应该在您的业务层/域模型层中完成。

您需要问自己的问题是,“如果我将HtmlHelper从当前应用程序中取出并将其放入另一个MVC应用程序中,是否可以在不进行修改的情况下重复使用?”。如果答案是否定的,那么很有可能它知道的太多了:)

答案 1 :(得分:1)

我认为您最好将业务逻辑放入域模型或服务中。这样,它更可测试且可重复使用

答案 2 :(得分:0)

不希望听起来很明显,HTMLHelper中的HTML是一个很大的线索,因为这个组件是以演示为重点的。我希望在这里找不到业务逻辑,纯HTML功能(可能会在其他项目中重用?)

答案 3 :(得分:0)

您的所有HTMLHelpers都应该允许移植到另一个程序集并在您的组织中使用:)