несоответствие между пользовательскими элементами управления и главной страницей - PullRequest
1 голос
/ 23 октября 2011

Я использую asp.NET с masterpages и usercontrols.

В MasterPage:

Doing

<link href='<%=ResolveUrl("~/path/file.css")%>' rel="stylesheet" type="text/css" />

не будет работать и CSS не будет загружаться, НО

Doing

<link runat="server" href='~/path/file.css' rel="stylesheet" type="text/css" />

будет работать, а CSS загрузится

В пользовательском управлении:

Выполнение

<link runat="server" href='~/path/file.css' rel="stylesheet" type="text/css" />

не будет работать иCSS не будет загружаться

НО

Выполнение

<link href='<%=ResolveUrl("~/path/file.css")%>' rel="stylesheet" type="text/css" />

будет работать, а CSS загрузится

На главной странице ResolveUrl не работает иrunat = "server" работает там, где в пользовательском контроле верно обратное.Может быть, я беспокоюсь и ценю, если кто-нибудь это проверит.Если это ситуация, в чем причина этого несоответствия?

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Хорошо, я понял.
В одном из случаев у меня был тег <head runat="server">. Поскольку runat = "server", ResolveUrl действует не как метод сервера, а как простой текст. Вот почему ResolveUrl не произнес ни слова - в теге head у меня было runat = "server".

0 голосов
/ 23 октября 2011

Вы можете прочитать здесь в деталях, что происходит.

Короче говоря, символ '~' предназначен только для использования на сервере

...