【发布时间】: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