РЕДАКТИРОВАТЬ: я решил сам. Потому что путь ссылки таблицы стилей /css/style.css
не css/style.css
, URL не будет исправлен asp.net. Я обнаружил, что <link>
<meta>
и <title>
будет добавлено как серверный элемент управления для заголовка, когда заголовок помечен как runat="server"
, поэтому этот серверный элемент управления автоматически исправит текущую справочную проблему.
!!! НО, <script>
игнорируется, Одним из решений является <%= ResolveClientUrl('~/js/jquery.js') %>
. Но это не работает, если у вас есть тема, привязанная к главной странице, asp.net не может добавлять таблицы стилей в App_Themes для заголовка, когда она содержит такое <% %>
выражение, asp.net выдаст исключение.
Так что, похоже, лучшее решение - это <ScriptManager>
.
Еще одним важным открытием является то, что когда у вас есть <ContentPlaceHolder>
в главном runat=server
заголовке, таблица стилей внутри <Content>
дочерней страницы, использующей эту главную страницу, не будет рассматриваться как серверный элемент управления. Так что <Content>
дочернего страница, которую вы должны использовать <%= ResolveClientUrl%>
для обработки исправления URL.
ORINGIAL:
Я использую asp.net 4.0 на IIS 7 Express. Я маршрутизирую «MarketList / {type}» в «~ / MarketList.aspx» со значением по умолчанию new {type = 0}
. URL "localhost: 4888 / MarketList" просто работает хорошо, я могу получить значение по умолчанию "0".
Но я обнаружил, что "/" испортит ссылки на таблицу стилей и JavaScript, определенные на главной странице "Main.master". «Main.master» находится в корневом уровне вместе с «MarketList.aspx». Таблица стилей в «Main.master» определяется как css/style.css
. Папка "css" также находится на корневом уровне. Когда я обращаюсь к "/ MarketList", это работает хорошо. Но, "/ MarketList / 1" дает значение "1" для {type}
. URL-адрес таблицы стилей на странице становится "../css/style.css", который указывает на "/MarketList/css/style.css". Этого не существует (очевидно).
Итак, я решил использовать «-» для разделения этих частей, я направляю «market-list- {type}» с такой же настройкой, как и выше. Но я обнаружил, что не могу получить доступ к URL-адресу маршрутизации по умолчанию, который, по моему мнению, будет «localhost: 4888 / market-list-». "localhost: 4888 / market-list" тоже не работает. Будет работать только "/ market-list-0".
Может ли кто-нибудь мне помочь?