我之前问过this question关于业务逻辑和表示逻辑的问题,它让我思考..我认为在查看View中的代码时更容易发现可疑的做法,因为当我看到它时我会自动怀疑。通常它没关系,因为它是表示逻辑,但我总是往往看得更近。
但是当我在HTML帮助器中时,我看起来并不那么接近。事实上,我知道我之前已经完成了,并且我已经告诉其他人将业务逻辑转移到Helper中。但是这样吗?
我现在的猜测是,它不是..我认为助手的工作与视图的工作相同。仅限演示。你们觉得怎么样?
答案 0 :(得分:13)
HtmlHelper应该只关注将相关的html输出到您的视图中,并且不应该了解任何业务规则。这应该在您的业务层/域模型层中完成。
您需要问自己的问题是,“如果我将HtmlHelper从当前应用程序中取出并将其放入另一个MVC应用程序中,是否可以在不进行修改的情况下重复使用?”。如果答案是否定的,那么很有可能它知道的太多了:)
答案 1 :(得分:1)
我认为您最好将业务逻辑放入域模型或服务中。这样,它更可测试且可重复使用
答案 2 :(得分:0)
不希望听起来很明显,HTMLHelper
中的HTML是一个很大的线索,因为这个组件是以演示为重点的。我希望在这里找不到业务逻辑,纯HTML功能(可能会在其他项目中重用?)
答案 3 :(得分:0)
您的所有HTMLHelpers都应该允许移植到另一个程序集并在您的组织中使用:)