我正在开发的项目允许最终用户修改CSS代码以尽可能地集成应用程序。大多数CSS值都存储在数据库中,需要动态检索和解析。
我设置了一个Style控制器,并为每个样式表提供了一个操作,然后将配置数据传递给View。我将ContentType设置为“text / css”,然后生成样式表。
这很好用,但我遇到的问题是:应用程序中的代码都不起作用。我将它包含在头代码中,但它不会在代码中解析。
我所做的一个例子是:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" ContentType="text/css" %>
.element {
background-color: <%= ViewData.Model.BackgroundColor %>;
}
我这样包括它:
<link href="/style/Basic" rel="stylesheet" type="text/css" media="all" />
当我在部分视图中包含CSS代码并在动作中使用ViewModel(包装在样式标记中)包含它时,一切正常。当我尝试将其解析为单独的文件时,它就会失效。
我做错了吗?或者是否存在某种故障?
提前致谢:D
答案 0 :(得分:1)
使用HTTPWatch等工具验证样式表是否已发送,而不是404'd
答案 1 :(得分:1)
控制器
public ActionResult Basic()
{
Response.ContentType = "text/css";
var basicVM = new BasicVM()
{
BackgroundColor = "Lime",
};
return View(basicVM);
}
和视图
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcApplication3.Controllers.BasicVM>" ContentType="text/css" %>
body {
background-color: <%= ViewData.Model.BackgroundColor %>;
}
和测试页
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Test</title>
<link href="/Home/Basic" rel="stylesheet" type="text/css" media="all" />
</head>
<body>
<div>
Test
</div>
</body>
</html>
将一切变为绿色