RE: Использование тем с ASP.Net MVC - PullRequest
1 голос
/ 23 октября 2008

У меня есть веб-сайт ASP.NET MVC (Beta 1), с которым я использую темы. Когда я запускаю свой сайт (я все еще использую веб-сервер разработки ASP.Net), страница по умолчанию выдает мне эту ошибку:

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 

Нужно ли что-то менять с моими маршрутами? Или мне нужно сделать что-то еще для моего сайта?

Ответы [ 4 ]

3 голосов
/ 23 октября 2008

Более понятная идея - просто иметь "тему", состоящую из CSS. На вашей главной странице (или отдельных видах) ссылки на соответствующие файлы CSS.

Например, я храню свои «темы» в каталоге тем в каталоге содержимого корня сайта. Каждая тема живет в своей папке и имеет main.css. Файл main.css отвечает за ссылки на все остальные необходимые CSS. Так что главная страница в моем примере просто ссылается на один main.css. Вы даже можете установить переменную ViewData ["theme"] (если хотите) на имя темы, чтобы главная страница могла просто использовать это как заполнитель для правильного каталога темы.

2 голосов
/ 23 октября 2008

Ошибка говорит о том, что ваша страница ASP.NET (или главная страница) должна иметь тег . Без этого вы не можете использовать темы.

Поскольку теги заголовков на стороне сервера не должны зависеть от состояния представления (поскольку они не содержатся в формах), они все равно могут работать.

Сказав это, темы не обязательно находятся в парадигме MVC, поэтому вы должны подумать, действительно ли они вам нужны.

1 голос
/ 14 ноября 2008

Это было мое решение http://frugalcoder.us/post/2008/11/ASPNet-MVC-Theming.aspx только что опубликовал об этом сегодня ...

0 голосов
/ 24 октября 2008

Мне нравится твоя идея, Джейсон, спасибо за совет. Это на самом деле было бы очень легко реализовать. :)

Точно так же, как к сведению тех, кто пытается делать то, что я / делаю с Темами, я просто добавил элемент заголовка на страницу default.aspx, и обо всем позаботились - только то, что предложил Ричард.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...