我正在使用新的ASP.NET MVC区域并将其与主题混合使用。在没有区域的MVC中,我曾经通过添加
来应用主题<pages theme="ThemeName" ... > ... </pages>
到Views文件夹中的Web.Config,它运行得很好。现在我有一个Areas文件夹,每个文件夹都有自己的Web.Config,我的主题仅适用于非区域控制器中的控制器(这非常有意义)。我想在单个Web.Config中更改默认主题,但是唯一包含我所有文件夹的主题位于根目录中,这会在您点击Default.aspx页面时导致错误。
编辑:在ASP.NET MVC 2中,结果发现他们删除了网站根目录中的Default.aspx页面,因此您现在可以在根网站中指定主题。配置没有问题,并且由于文件夹结构也适用于区域。
除此之外,我不明白“themes don't necessarily sit well in the MVC paradigm”是怎么回事。 MVC中的一个主要概念是通过抽象层分离关注点。我没有看到为什么不能将视图抽象为两个单独的实体,数据显示在用户界面中的给定点以及数据被设置为样式的主题的任何原因。
我有两个问题:
答案 0 :(得分:3)
Asp.Net主题非常紧密地集成到Asp.Net中(有许多特殊的钩点:创建Arnis提到的配置文件; having a <head runat="server">
tag;等等。)要使它与MVC一起工作,需要你在主要的MVC组件之间建立连接,这本质上违背了MVC的目的(关注点分离)。
答案 1 :(得分:2)
简单。
主题并不适合MVC范例,因为管理主题属于表示层,与UI相关的东西应该由它专门处理。
使用主题时 - 你告诉你如何在控制器甚至模型中显示某些东西(即 - 你为每个用户或某些东西创建一个配置文件),这与提到的范例有冲突。
但不要忘记MVC不是宗教信仰。
答案 2 :(得分:-2)
扔出WFVE。安装Spark。阅读有关主题的文档。实行。享受。