Должен ли я использовать Url.Content () или ResolveUrl () в моих представлениях MVC? - PullRequest
21 голосов
/ 10 марта 2010

При построении кода вот так:

<script type="text/javascript" src="<%=ResolveUrl("~/js/js.js")%>"></script>

или

<input type="image" src="<%=ResolveUrl("~/img/submit.png")%>" />

Должен ли я использовать Url.Content или ResolveUrl()? Какая разница?

Ответы [ 3 ]

30 голосов
/ 10 марта 2010

Если вы используете перезапись URL IIS в приложении MVC, например, внутренняя обработка http://yoursubdomain.example.com/MyController/MyAction как http://hosted.example.com/yoursubdomain/MyController/MyAction, Url.Content () сгенерирует правильную ссылку на субдомен. ResolveUrl () сгенерирует неверную ссылку в этой ситуации.

14 голосов
/ 10 марта 2010

Url.Content больше MVCish, как это обычно. ResolveUrl существует с самого начала ASP.NET.

12 голосов
/ 13 ноября 2010

Я предпочитаю захватывать корень сайта в локальную переменную и использовать его снова

<% 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>

Это должно сэкономить несколько мс:)

...