C# 从数据库动态更改CSS属性
我试图通过数据库中的一个字段动态地改变CSS属性。我知道我可以加入一堆像这样的if语句C# 从数据库动态更改CSS属性,c#,css,asp.net-mvc,html,razor,C#,Css,Asp.net Mvc,Html,Razor,我试图通过数据库中的一个字段动态地改变CSS属性。我知道我可以加入一堆像这样的if语句 if (@Model["font"] == "arial") //set the font to arial 这会起作用,但会扰乱我的观点。我想知道是否有人有更优雅的解决方案。任何帮助都将不胜感激 如果不需要任何附加逻辑,只需逐字输出模型中的值即可 body { font-family: @Model["font"] } 这里有一些不错的选择: 将样式块直接添加到视图中(如Matthew所建议)
if (@Model["font"] == "arial")
//set the font to arial
这会起作用,但会扰乱我的观点。我想知道是否有人有更优雅的解决方案。任何帮助都将不胜感激 如果不需要任何附加逻辑,只需逐字输出模型中的值即可
body {
font-family: @Model["font"]
}
这里有一些不错的选择:
- 将样式块直接添加到视图中(如Matthew所建议)。通常,样式应该放在单独的文件中,但是这样做的一些动机(例如重用)消失了,因为您的源是动态的
- 您可以生成/缓存从控制器或其他HTTP处理程序提供的样式表。(用于.Net的预处理库)正是这样做的;它获取源代码,将其处理为纯CSS,然后缓存结果
- 您可以在控制器中使用DOM生成一些HTML,并内联应用样式。这种技术对于WYSIWYG编辑器生成的HTML非常有用,因为它们通常生成低于标准的标记,并且需要进行内联调整
- 如果你真的想变得“花哨”,你可以考虑将模型的属性集成到更少的CSS中。我设想一个预处理步骤,解析模型值,然后允许进行正常的较少预处理(可能使用dotless)