Зачем использовать Url.Content для ссылок на ресурсы? - PullRequest
5 голосов
/ 11 декабря 2010

Почти в каждом примере ASP.NET MVC, с которым я сталкивался, я всегда вижу Url.Content , который используется для ссылки на CSS, JavaScript и изображения. Ни разу никто не объяснил, ПОЧЕМУ это использовать.

Кто-нибудь хочет объяснить?

Что плохого в этом:

<img src="/Content/Img/MyImage.png" alt="My Image" />
<script src="/Scripts/jquery.js" type="text/javascript"></script>
<link href="/Content/Css/Default.css" rel="stylesheet" type="text/css" media="all" />

1 Ответ

2 голосов
/ 11 декабря 2010

То, что у вас есть, работает так же, как Url.Content ().Url.Content () аналогичен добавлению ~ в начало ваших путей:

<script src="~/Scripts/jquery.js" type="text/javascript"></script>

Просто гарантирует, что путь всегда правильный при маршрутизации.Вы также можете сделать вспомогательный метод Html, чтобы сделать это проще:

public static string RenderScript(this HtmlHelper htmlHelper, string file) {
            var f = file.EndsWith(".js") ? file : string.Concat(file, ".js");
            return string.Format("<script src=\"/public/scripts/{0}\" type=\"text/javascript\"></script>", f);
        }

Тогда вы можете просто поместить это на свою главную страницу:

<%=Html.RenderScript("jquery")%>
...