При использовании asp.net URL-маршрутизации, что является предлагаемым решением для ссылки на CSS-файлы? - PullRequest
1 голос
/ 12 августа 2011

Я использую URL-маршрутизацию и у меня есть таблица стилей, на которую ссылается страница назначения (внутри шаблона содержимого главной страницы):

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <link href="css/actionmenu.css" rel="stylesheet" type="text/css" />
</asp:Content>

Когда запрашивается страница www.mysite.com/mypage, все в порядке. Однако, если страница запрашивается как www.mysite.com/mypage/anotherpage - ссылка на таблицу стилей разрывается. Я попробовал:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
        <link href="~/css/actionmenu.css" rel="stylesheet" type="text/css" runat="server"/>
    </asp:Content>

и это не помогло.

Мое обычное решение состоит в том, чтобы загрузить таблицу стилей в codebehind - однако, есть ли другое решение, которое я пропускаю?

Ответы [ 3 ]

2 голосов
/ 12 августа 2011

Я считаю, что вы можете использовать Server.ResolveClientUrl () для обработки этого в ASP.NET:

href="<%=Server.ResolveClientUrl("~/css/actionmenu.css")%>"

В ASP.NET MVC вы можете использовать Url.Content () метод:

href = <%=Url.Content("~/css/actionmenu.css")%>"

Если вы ищете дополнительную информацию об этих опциях, вы можете проверить ссылку ниже:

Различные подходы для разрешения URL | Блог программиста

0 голосов
/ 12 августа 2011

Есть ли причина, по которой вы не можете использовать абсолютную ссылку - например,

<link href="/css/actionmenu.css" rel="stylesheet" type="text/css" />
0 голосов
/ 12 августа 2011

Попробуйте это.

<link href='<%= ResolveUrl("~/css/actionmenu.css") %>' rel="stylesheet" type="text/css" media="all" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...