【问题标题】:Why would you want to use a MVC 3 Template?为什么要使用 MVC 3 模板?
【发布时间】:2011-09-09 18:54:24
【问题描述】:

几周前,我想出了如何编写自己的 DisplayTemplates 和 EditorTemplates。我确实发现它们很有用,因为我可以这样写:@Html.DisplayForModel("my_awesome_template") 它将显示“my_awesome_template”中的任何内容并在视图中使用当前模型。很棒吧?

嗯,我已经以多种不同的方式编写了我的视图,现在我要回到我最初编写它们的方式:直接在视图中,没有部分或模板,并使用 ViewModels。为什么?因为我缺乏终极的灵活性并且失去了一致性。例如:如果我的 DisplayTemplate 中有 @Model.HamSandwhichText,因为这是在我的模板中,我只能在我的模板中移动它,而不是在实际视图中。从技术上讲,我可以直接在视图中使用它,但那时我只是打破了一致性。这意味着视图和模板都可以访问相同的东西。我不喜欢这个。我假设因为我使用的是 ViewModels,所以我不必担心模板。

但是,使用模板的真正原因是什么?我确实注意到它使显示列表更清晰、更容易;但我还是不喜欢。

【问题讨论】:

  • 抽象——也就是说,模板是一种抽象的手段。
  • 这也是其他人告诉我的,并向我展示了一个很好的用例。但它仍然允许 View 和 Template 访问相同的东西;这也是他所担心的。

标签: c# model-view-controller asp.net-mvc-3 mvc-editor-templates


【解决方案1】:

使用编辑器/显示模板有两个原因:

1) 语法糖。通过隔离特定的代码块,它有助于使您的 html 更易于阅读。 由于我使用以下方法,我的大多数视图/布局都非常轻量:

  • 部分视图
  • 模板
  • 部分

2) 它使代码更易于维护。将你的 html 分成有目的的简洁代码块可以真正帮助你专注于你正在做的事情。我可以轻松添加/删除/替换整个代码部分。

【讨论】:

  • 这就是我首先使用它们的原因。现在,我认为它确实在一定程度上使其更易于维护。如果一切都使用模板,我将搜索文件并筛选 DisplayTemplate 和 EditorTemplate 文件夹以找到我要查找的内容。
  • 搜索文件夹结构总是比尝试阅读 100 到 1000 行 html 更容易。
  • 我完全同意。这取决于您的页面有多复杂。此时,在这种情况下,局部视图会比模板更有用。
  • 当你有一组继承自一个通用基类的模型类时,模板真的很出色。如果您想列出一堆都源自动物的动物类型。您可以使用带有表格数据的模板来显示数据中所有动物的共同属性。您的模型将为模板键入“Animal”,然后您可以将任何继承自该模板的内容传递给它。
  • 接口也可以工作。 (我在大多数情况下更喜欢接口)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多