Asp.net mvc 回复:在ASP.NETMVC中使用主题

Asp.net mvc 回复:在ASP.NETMVC中使用主题,asp.net-mvc,Asp.net Mvc,我有一个ASP.NETMVC(Beta1)网站,我正在使用主题。当我启动我的网站(我仍在使用ASP.Net开发Web服务器运行)时,默认页面会显示以下错误: Server Error in '/' Application. Using themed css files requires a header control on the page. (e.g. <head runat="server" />). Description: An unhandled exception oc

我有一个ASP.NETMVC(Beta1)网站,我正在使用主题。当我启动我的网站(我仍在使用ASP.Net开发Web服务器运行)时,默认页面会显示以下错误:

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 
“/”应用程序中出现服务器错误。 使用主题化css文件需要页面上的标题控件。(例如)。 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。 异常详细信息:System.InvalidOperationException:使用主题化css文件需要页面上的标题控件。(例如)。 源错误: 在执行当前web请求期间生成了未经处理的异常。有关异常的起源和位置的信息可以使用下面的异常堆栈跟踪来识别。 堆栈跟踪: [InvalidOperationException:使用主题化css文件需要页面上的标题控件(例如)。] 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(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)+378 版本信息:Microsoft.NET Framework版本:2.0.50727.3053;ASP.NET版本:2.0.50727.3053
我需要改变我的路线吗?或者我需要对我的站点执行其他操作吗?

错误提示您的ASP.NET页面(或母版页)需要有标记。没有它,就不能使用主题

由于服务器端头标记不应该依赖于viewstate(因为它们不包含在表单中),所以它可能仍然有效


已经说过,主题不一定在MVC范例中占据很好的位置,所以你应该考虑你是否真的需要它们。

< P>这个错误告诉你,你的ASP.NET页面(或母版页)需要有一个标签。没有它,就不能使用主题

由于服务器端头标记不应该依赖于viewstate(因为它们不包含在表单中),所以它可能仍然有效


已经说过,主题不一定在MVC范式中占据很好的位置,所以你应该考虑你是否真的需要它们。

< P>一个更干净的想法就是拥有一个由CSS组成的“主题”。在母版页(或单个视图)中,链接到相应的CSS文件


例如,我将“主题”保存在站点根目录下的主题目录中。每个主题都位于自己的文件夹中,并有一个main.css。main.css负责引用所有其他必需的css。因此,我的示例中的母版页只链接到一个main.css。您甚至可以将ViewData[“theme”]变量(如果需要)设置为主题名称,这样母版页就可以简单地将其用作正确主题目录的占位符。

一个更简洁的想法是只使用由CSS组成的“theme”。在母版页(或单个视图)中,链接到相应的CSS文件


例如,我将“主题”保存在站点根目录下的主题目录中。每个主题都位于自己的文件夹中,并有一个main.css。main.css负责引用所有其他必需的css。因此,我的示例中的母版页只链接到一个main.css。您甚至可以将ViewData[“theme”]变量(如果需要)设置为主题名称,这样母版页就可以简单地将其用作正确主题目录的占位符。

我喜欢您的想法,Jason,谢谢您的提示。这对我来说其实很容易实现。:)


我只是简单地在default.aspx页面中添加了header元素,所有内容都得到了处理——正如Richard建议的那样。

我喜欢你的想法,Jason,谢谢你的提示。这对我来说其实很容易实现。:)


作为任何试图做我正在/正在做的主题的人的参考,我只是将header元素添加到default.aspx页面,所有的一切都得到了处理-正如Richard所建议的。

这是我今天发布的关于这个问题的解决方案…

这是我今天发布的关于这个问题的解决方案…

那么,你可能想感谢Richard或Jason回答你的问题。这有助于他们的因果报应。那么,你可能想把回答你问题的功劳归功于理查德或杰森。这有助于他们的因果报应。