Почему команда MVC Asp.net выбрала «../../Content/Site.css», а не «~ / Content / Site.css» на странице Site.Master? - PullRequest
1 голос
/ 14 декабря 2010
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />

Приведенный выше код показывает внешний тег включения CSS, объявленный в шаблоне Site.Master.

Мой вопрос: почему команда Asp.net MVC выбрала этот способ, а не "~ / Content / Site.css"?

Это лучшая практика? Прошу прощения, я новичок и все еще учусь совершенствовать свое мастерство.

РЕДАКТИРОВАТЬ 1: Я хочу прояснить, что сначала необходимо передать "~ /" в метод разрешения URL. Таким образом, я могу переписать свой вопрос следующим образом:

Почему команда выбрала "../ ..", а не "~ /", разрешенный преобразователем URL?

Ответы [ 4 ]

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

Обратитесь к тому, что сказал @Pauli Østerø. Но, поскольку вы попросили наилучшую практику, вот она ... избавиться от этих жестко закодированных строк. Используйте T4MVC для этих путей

1 голос
/ 15 декабря 2010

Или используйте «/Content/Site.css», так как «/» обозначает корень сайта в html.

1 голос
/ 14 декабря 2010

~ это asp.net и не имеет смысла в чистом html.В веб-формах, которые обрабатываются путем превращения тега в серверный элемент управления, который может преобразовать ~ в абсолютный путь, в то время как вам в MVC придется вызывать какой-то метод самостоятельно.Некоторым методом является Server.MapPath, например

0 голосов
/ 18 января 2011

Эта проблема была исправлена ​​MVC 3 следующим образом: Я думаю, что команда MVC прочитала этот вопрос: -)

<head>
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
</head>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...