2010-08-24 194 views
0

我正在開發的項目允許最終用戶修改CSS代碼以儘可能集成應用程序。大多數CSS值都存儲在數據庫中,需要動態檢索和分析。ASP.NET MVC動態樣式表

我設置一個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代碼,並將其使用視圖模型(包括包裹在風格標籤)在一個動作,然後一切正常。這是當我試圖解析這是一個單獨的文件,當它不起作用。

有沒有我不正確的做法?還是有一些小故障?

在此先感謝:d

+0

當您將在'/風格/ Basic'瀏覽器你什麼輸出?您也可以檢查返回的HTTP頭以確保它們看起來不錯。 – 2010-08-24 01:55:24

+0

我已經嘗試了類似的代碼給你,並且它在我使用這兩個代碼片段時起作用。我會先檢查螢火蟲或提琴手,看看請求是否通過。無論是這個還是我誤解你的問題。 – MarkKGreenway 2010-08-24 01:56:38

回答

1

使用的工具,如HttpWatch的驗證樣式表被向下發送,而不是404'd

+0

當我訪問樣式表時,它看起來很好。這讓我感到困惑。 – Swamp56 2010-08-24 02:28:28

+0

我收回了該評論。事實證明,我忘記了將URL傳遞給每個controller = \所需的URL。 我現在感覺像一個白癡xD。 – Swamp56 2010-08-24 02:50:36

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> 

把一切都綠