ASP.NET MVC助手扩展和关注点分离

4
当我实现一个帮助扩展程序来创建类似于这篇文章中所描述的导航小部件时,我发现我的HTML代码现在与C#代码紧密耦合。因此,如果我想要使用新的菜单控件重新设计网站,该控件需要略微不同的标记(例如<ul class="foo">...</ul>或为嵌套的<li>标签指定不同的类名),我现在必须同时编辑帮助扩展程序和视图。
使用帮助扩展程序更快、更容易,但这不违反关注点分离原则吗?你们维护这样的代码有什么经验?我对Microsoft MVC还比较陌生,所以如果我错过了一些要点,请原谅。
2个回答

2
一个设计良好的HTML Helper应该是多功能的,对于它如何构建HTML应该有非常宽松的观点。您可以向扩展方法添加可重写选项,以使呈现尽可能可配置。如果您有新的要求,而现有的帮助程序不够灵活,请扩展它以适应新的要求。

1

我认为你是对的,并且已经找到了类似的东西。现在更快/更容易,而不是未来可能需要更改事物的潜在痛苦。您可能可以使您的“助手”读取它使用的模板,以便您可以更改它,重新启动Web应用程序并查看更改。但是,这也增加了复杂性。我会说很多敏捷方法都建议现在做更容易/更快的事情,并理解如果您的要求在未来发生变化,则重新审视它。谁知道呢,也许永远不会发生。


1
我同意,现在有一个80%正确的工作解决方案比花费额外几天时间得到100%的解决方案更好,而且后者可能永远不会被需要。敏捷开发对于清晰思考非常有帮助。在我的情况下,我肯定需要以几种方式重新设计它。我设置了一个接受样式参数的Helper函数,效果还不错。但是,在编译类中生成HTML仍然让我感到不太舒服,但是我们将看看随着时间的推移它如何运作。感谢您的观点! - rargie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接