2010-08-12 58 views
4

当为类似的导航小部件实现助手扩展到this article中描述的助手扩展时,我注意到我的HTML现在绑定在C#代码中,所以如果我想重新皮肤该网站的新菜单控件需要稍微不同的标记(例如<ul class="foo">...</ul>或嵌套<li>标记的不同类名称)我现在必须编辑辅助扩展和视图。ASP.NET MVC助手扩展和关注点分离

使用助手扩展更快更容易,但这是否违反了关注点分离?你有什么维护这些代码的经验?我对微软MVC相当陌生,所以如果我在这里错过了一些观点,请原谅我。

回答

2

一个精心设计的HTML助手应该是多功能的,并且对于如何构建它的HTML有非常宽泛的意见。您可以为扩展方法添加可覆盖的选项,以便渲染可根据需要进行配置。如果您有新的要求,并且您的现有帮手不够灵活,请对其进行扩展以适应新的要求。

1

我认为你是对的,并且发现了类似的东西。现在对于未来可能出现的痛苦,“如果”你需要改变事情,现在更快更容易。你可能会让你的“帮手”在它使用的模板中阅读,所以你可以改变它,重新启动网络应用程序,看看你的变化出现。但是,这也增加了复杂性。我会说很多敏捷说现在做更容易/更快的东西,并且明白将来如果你的需求发生变化,然后再重新审视它。谁知道,它可能永远不会发生。

+1

我同意现在有80%的工作解决方案比100%的解决方案需要额外几天但可能永远不需要更好。敏捷对清理思维非常有用。在我的情况下,我一定会需要用几种方法来表达它。我设置了一个Helper函数,该函数接受可以正常工作的样式参数。尽管编译后的类中生成的HTML仍然不完全适用,但我们将看到它随着时间的推移如何运作。感谢您的POV! – rargie 2010-08-13 15:29:30