【问题标题】:ASP.NET MVC helper extensions & separation of concernsASP.NET MVC 助手扩展和关注点分离
【发布时间】:2010-08-13 04:17:36
【问题描述】:

在为类似于this article 中描述的导航小部件实现帮助扩展时,我注意到我的 HTML 现在绑定在 C# 代码中,所以如果我想使用新的菜单控件重新设置站点的外观需要稍微不同的标记(例如 <ul class="foo">...</ul> 或嵌套 <li> 标记的不同类名)我现在必须同时编辑辅助扩展和视图。

使用辅助扩展更快更容易,但这不违反关注点分离吗?您维护此类代码的经验是什么?我对 Microsoft MVC 还很陌生,所以如果我在这里遗漏了一些要点,请原谅我。

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    设计良好的 HTML Helper 应该是通用的,并且对于如何构建其 HTML 有非常宽松的看法。您可以将可覆盖的选项添加到扩展方法,以便呈现可根据需要进行配置。如果您有新的需求并且您现有的助手不够灵活,请扩展它以适应新的需求。

    【讨论】:

      【解决方案2】:

      我认为你是对的,并且发现了类似的事情。这是现在更快/更容易与“如果”你需要在未来改变事情的潜在未来痛苦。你可以让你的“助手”读入它使用的模板,这样你就可以改变它,重新启动网络应用程序并看到你的改变出现。然而,这也增加了复杂性。我会说很多敏捷说现在做更容易/更快的事情,并理解将来如果您的需求发生变化然后重新审视它。谁知道呢,它可能永远不会发生。

      【讨论】:

      • 我同意,现在最好有一个 80% 正确的有效解决方案,而不是一个需要额外几天但可能永远不需要的 100% 解决方案。敏捷非常适合清理思维。就我而言,我肯定需要用几种方法重新设计它。我设置了一个 Helper 函数来接受样式参数,效果很好。虽然仍然不能完全适应在编译类中生成 HTML,但随着时间的推移我们会看到它是如何工作的。感谢您的 POV!
      猜你喜欢
      • 2015-11-25
      • 1970-01-01
      • 2016-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      相关资源
      最近更新 更多