Asp.net mvc Asp.NETMVC主题,如何实现?

Asp.net mvc Asp.NETMVC主题,如何实现?,asp.net-mvc,themes,Asp.net Mvc,Themes,我有一个ASP.NET2.0站点,希望将其转换为MVC范例(我对这一点不熟悉),但从零开始 我的旧站点中有一些主题,但阅读这里和那里,主题似乎不适合MVC范式 问题是: 在MVC中,构建主题化用户自定义站点的最佳实践是什么? 如果适用的话,你能举个小例子吗 注意:我知道,但他们没有谈论最佳实践或如何开始。一个干净的、语义正确的HTML和一个好的CSS是对任何web应用进行主题化的方法,无论是ASP.NET、RoR、PHP等 CSS威力的最好例子是 学校有一个很好的环境 您的每个用户都可以有一个相

我有一个ASP.NET2.0站点,希望将其转换为MVC范例(我对这一点不熟悉),但从零开始

我的旧站点中有一些主题,但阅读这里和那里,主题似乎不适合MVC范式

问题是:

在MVC中,构建主题化用户自定义站点的最佳实践是什么? 如果适用的话,你能举个小例子吗


注意:我知道,但他们没有谈论最佳实践或如何开始。

一个干净的、语义正确的HTML和一个好的CSS是对任何web应用进行主题化的方法,无论是ASP.NET、RoR、PHP等

CSS威力的最好例子是

学校有一个很好的环境

您的每个用户都可以有一个相关的样式表,在任何适用的情况下都可以选择该样式表,即:

<link rel="stylesheet" type="text/css" href="<%= Model.SelectedStyleSheet %>"/>

主题很好,实现起来也不难


只要链接到js和css文件,不要忘记图标。并确保在这些链接中使用Url.Content()。否则,一旦您将其部署到生产服务器上,它可能无法链接到正确的路径(我曾经掉进过这个陷阱)。

由于主题用于设置标签样式,您可以使用CSS创建类似的方法。我可能会建议您从复制默认主题到css定义开始

html:

css:input{颜色:浅蓝色}


然后,对于任何具有非默认主题的内容,您可以对其应用类。将所有主题重新编写为CSS需要一段时间,但一旦完成,就值得付出努力。

以下是我在ASP.NET MVC中用于实现“主题”的代码:


当您能够交换CSS文件来更改主题时,这是很好的,但是在很多情况下这并不是很实用。尤其是当每个主题都需要完全不同的布局时。在这种情况下,您需要更改呈现的CSS和HTML,这就是我编写上述链接中的代码的原因。

您需要多少自定义?如果只是关于颜色和字体,一个简单的CSS替换就可以了。我主要希望用户能够更改主题,在Asp.NET2.0中,我可以轻松实现,并且想知道一个典型的MVC风格的人如何获得这种方法。虽然这是真的,但这两个都是很好的资源-它没有解决这个问题。看起来约翰尼正在寻找在ASP.NET MVC项目中实现主题系统的技巧和技术。@杰森:没错,我刚刚添加了一种可能的实现方法。我们不是在为每个主题创建视图和母版页吗。看起来我们违反了DRY原则?@Amitabh-这就是为什么Chris说,“[只是换掉CSS]不太实际[…]你需要更改CSS和HTML。”这仍然是更改MVC4中布局和主题的最佳方式吗?你的文章是2009年的,但似乎在网络上持续存在。实际上没有.NET的方法可以做到这一点。。。仍然?相同的实现,但使用razor:这不是问题的答案。