2008-10-23 42 views
1

我有一個我正在使用主題的ASP.NET MVC(Beta 1)網站。當我開始我的網站(我仍然在運行使用ASP.Net開發Web服務器)的默認頁給我這個錯誤:RE:在ASP.Net中使用主題MVC

Server Error in '/' Application. 
Using themed css files requires a header control on the page. (e.g. <head runat="server" />). 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: Using themed css files requires a header control on the page. (e.g. <head runat="server" />). 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 

[InvalidOperationException: Using themed css files requires a header control on the page. (e.g. <head runat="server" />).] 
    System.Web.UI.PageTheme.SetStyleSheet() +2458366 
    System.Web.UI.Page.OnInit(EventArgs e) +8694828 
    System.Web.UI.Control.InitRecursive(Control namingContainer) +333 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +378 


Version Information: Microsoft .NET Framework Version:2.0.50727.3053; ASP.NET Version:2.0.50727.3053 

我需要改變我的路線的東西嗎?或者我需要在我的網站上做其他事情?

回答

2

錯誤是告訴你,你的ASP.NET頁面(或母版頁)需要有一個<頭RUNAT =「服務器」>標記。沒有它,你不能使用主題。

由於服務器端標題標籤不應該對視圖狀態的依賴性(因爲它們不包含在形式),它可能仍然工作。

話雖如此,題材不一定MVC範例中的坐好,所以你應該考慮是否真的需要它們。

3

一個清潔的想法是隻是有一個「主旋律」,包括CSS的。在您的母版頁(或單個視圖)中鏈接到相應的CSS文件。

例如,我把我的「主題」的主題目錄站點根目錄的內容目錄下。每個主題都在它自己的文件夾中,並且有一個main.css。 main.css負責引用所有其他所需的CSS。因此,我的示例中的主頁面僅鏈接到一個main.css。您甚至可以將ViewData [「theme」]變量(如果需要)設置爲主題名稱,因此主頁面可以簡單地將其用作正確主題目錄的佔位符。

0

我喜歡你的想法傑森,謝謝你的提示。對我來說,這實際上很容易實現。 :)

就像任何人試圖做我/正在做的主題一樣,我只是將頭元素添加到default.aspx頁面,並且所有都被照顧 - 理查德建議。

+0

你可能想給理查德·傑森或信貸的回答你的問題,然後。它有助於他們的SO業力。 – 2008-10-24 12:46:55