【问题标题】:Asp.Net MVC Themes, how to?Asp.Net MVC 主题,如何?
【发布时间】:2014-04-27 09:03:49
【问题描述】:

我有一个 ASP.Net 2.0 站点,想将其转换为 MVC 范例(我是新手),但从零开始。

我的旧网站中有一些主题,但到处阅读,似乎主题不太适合 MVC 范式。

问题是:

在 MVC 中构建主题用户可定制网站的最佳实践是什么? 可以举个小例子吗?

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

【问题讨论】:

  • 您需要多少定制?如果它只是关于颜色和字体,一个简单的 CSS 替换就可以了。
  • 主要是我希望用户能够更改主题,在 Asp.Net 2.0 中我很容易实现,并且想知道一个典型的 MVC-ish 人将如何获得这种方法

标签: asp.net-mvc themes


【解决方案1】:

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

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

当您能够只换出 CSS 文件来更改主题时,这很好,但在很多情况下这确实不是很实用。特别是当每个主题需要有完全不同的布局时。在这种情况下,您需要更改渲染的 CSS 和 HTML,这就是我编写上述链接中的代码的原因。

【讨论】:

  • 我们不是为每个主题创建视图和母版页。看起来我们违反了 DRY 原则?
  • @Amitabh - 这就是为什么 Chris 说,“[只是换掉 CSS] 不是很实用 [...] 你需要更改 CSS 和 HTML。”
  • 这仍然是在 MVC4 中更改布局和主题的最佳方式吗?你的文章是 2009 年的,但似乎在网络上仍然存在。真的没有 .NET 的方式来做这件事......仍然吗?
  • 相同的实现,但带有剃须刀:weblogs.asp.net/thangchung/archive/2011/06/10/…
【解决方案2】:

干净、语义正确的 HTML 和良好的 CSS 是任何 Web 应用程序主题的方式,无论是 ASP.NET、RoR、PHP 等。

CSS 的力量最好的例子是CSS Zen Garden

w3schools 有一个很好的introduction/tutorial to CSS

您的每个用户都可以有一个关联的样式表,该样式表将在适用时被选中,即:

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

【讨论】:

  • 虽然这是真的,而且这些都是很好的资源 - 它并没有解决这个问题。看起来 Jhonny 正在寻找在 ASP.NET MVC 项目中实现主题系统的技巧和技术。
  • @Jason:你说得对,我只是添加了一种可能的实现方式。
【解决方案3】:

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

html:&lt;input type="button" /&gt;

css: 输入 { 颜色 : 浅蓝色 }

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

【讨论】:

    【解决方案4】:

    jQuery-ui 主题很好,实施起来也不难。

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

    【讨论】:

    • 这不是问题的答案。
    猜你喜欢
    • 1970-01-01
    • 2017-12-08
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多