Должен ли я использовать Url.Content() или ResolveUrl() в своих MVC-представлениях?
При создании кода следующим образом:
<script type="text/javascript" src="<%=ResolveUrl("~/js/js.js")%>"></script>
или
<input type="image" src="<%=ResolveUrl("~/img/submit.png")%>" />
Должен ли я использовать Url.Content
или ResolveUrl()
? Какая разница?
Ответы
Ответ 1
Если вы используете перезапись URL-адреса IIS в своем приложении MVC, например. внутренне обрабатывая http://yoursubdomain.example.com/MyController/MyAction как http://hosted.example.com/yoursubdomain/MyController/MyAction, Url. Content() будет генерировать правильную ссылку на субдомен. ResolveUrl() создаст неверную ссылку в этой ситуации.
Ответ 2
Url.Content
больше MVCish, так как он нормальный. ResolveUrl существует с самого начала ASP.NET.
Ответ 3
Я предпочитаю фиксировать корень сайта в локальной переменной и повторно использовать его
<% var siteroot = Url.Content("~/") %>
<script type="text/javascript" src="<%: siteroot %>Script/jquery-1.4.1.js"></script>
<script type="text/javascript" src="<%: siteroot %>Script/jquery.validate.js"></script>
Он должен сохранить несколько мс:)