代码之家  ›  专栏  ›  技术社区  ›  Nick Larsen

为什么主题在MVC范式中不合适?

  •  -1
  • Nick Larsen  · 技术社区  · 15 年前

    我正在使用新的ASP.NET MVC区域,并将其与主题混合。在没有区域的MVC中,我通过添加

    <pages theme="ThemeName" ... > ... </pages>
    

    到视图文件夹中的web.config,它工作得很好。现在我有了一个areas文件夹,每个文件夹都有自己的web.config,我的主题只适用于非areas控制器中的控制器(这非常有意义)。我想在单个web.config中更改默认主题,但包含所有文件夹的唯一主题在根目录中,这会在您点击default.aspx页面时导致错误。

    编辑 :在ASP.NET MVC 2中,结果发现他们删除了网站根目录中的default.aspx页面,使之成为您现在可以在根目录web.config中指定主题而不会出现问题,并且由于文件夹结构的原因,它也适用于区域。

    除此之外,我不明白 themes don't necessarily sit well in the MVC paradigm “也不是。MVC中的一个主要概念是通过抽象层分离关注点。我不明白为什么视图不能抽象为两个独立的实体,用户界面中给定点显示的数据和数据被设计成的主题。

    我有两个问题:

    1. 是否可以在单个web.config中为此类型的项目指定主题?[在编辑中解决。]
    2. 为什么主题在MVC范式中不合适?
    3 回复  |  直到 15 年前
        1
  •  3
  •   Community Egal    7 年前

    ASP.NET主题如此紧密地集成到ASP.NET中(具有许多特定的挂接点:创建arnis提到的概要文件; having a <head runat="server"> tag ;等)要使其与MVC一起工作,需要您 在主要的MVC组件之间建立线路,这本质上违背了MVC的目的。 (关注点分离)。

        2
  •  2
  •   Arnis Lapsa    15 年前

    简单。

    主题在MVC范式中并不合适,因为管理主题属于表示层,与UI相关的东西应该由它单独处理。

    当你处理主题的时候——你告诉你将如何在控制器甚至模型中显示一些东西(例如——你为每个用户或某物创建一个概要文件),这与前面提到的范例是冲突的。

    但别忘了MVC不是宗教。

        3
  •  -2
  •   Neal    15 年前

    扔掉WFVE。安装火花。阅读有关主题的文档。实施。享受。