2009-04-20 49 views
31

我有一个ASP.Net 2.0网站,并希望将其翻译成MVC范式(我是新手),但从零开始。Asp.Net MVC主题,如何?

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

的问题是:

什么是MVC为建设一个主题用户自定义网站的最佳做法? 如果适用,你可以举一个小例子吗?

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

+0

你需要多少定制?如果仅仅是关于颜色和字体,一个简单的CSS替换就可以实现。 – User 2009-04-20 20:37:52

+0

主要是我希望用户能够改变主题,在Asp.Net 2.0中我很容易实现,并且想知道一个典型的MVC-ish人将如何得到这个方法 – 2009-04-20 20:51:12

回答

26

这里是我的代码,我已经使用了ASP.NET MVC中实现“主题”:

ASP.NET MVC: Implement Theme Folders using a Custom ViewEngine

很高兴,当你能够只是换出CSS文件来更改主题,但这在很多情况下确实不太实际。特别是当每个主题需要有完全不同的布局时。在这种情况下,您需要更改呈现的CSS和HTML,这就是为什么我编写了上述链接中找到的代码的原因。

20

干净,语义正确的HTML具有良好的CSS就是这样,任何题材的web应用程序,无论是ASP.NET,回报率,PHP等

的CSS的强大是CSS Zen Garden最好的例子。

w3schools有一个不错的introduction/tutorial to CSS

每个用户可以有一个相关的样式表这将获得选择时适用,即:

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

虽然这是真的,并且这些都是很好的资源 - 它不解决问题。看起来Jhonny正在寻找在ASP.NET MVC项目中实现主题系统的技巧和技巧。 – Jason 2010-01-08 15:40:16

+5

@Jason:你说得对,我只是添加了一种可能的方式来实现这一点。 – 2010-01-08 17:13:16

1

jQuery-ui主题是好的,而不是太难实现。

只需链接到js和css文件,不要忘记图标。并确保在这些链接中使用Url.Content()。否则,它可能无法链接到正确的路径,一旦你部署在生产服务器上(我陷入了一次陷阱)。

2

由于主题旨在设计标签,所以您可以使用CSS创建类似的方法。我可能会建议您先将默认主题复制到css定义,例如

HTML:<input type="button" />

CSS:输入{颜色:淡蓝色}

那么对于任何有你的非默认主题,你可以只申请类给他们。将所有主题重新编写为CSS需要一段时间,但一旦完成,就值得付出努力。