Ссылки в области Layout на папку Content\Css, расположенную в корне приложения ASP NET MVC.

Доброе утро/день/вечер/ночь всем,

Прошу ваших идей по работе с Area в ASP NET MVC. В моем приложении есть несколько областей, и у каждой свой _Layout. Как я могу сделать ссылки внутри него на подпапку Css (то же самое со скриптами), расположенную в папке Content в корне? Макеты из областей используют идентичные файлы css и изображений, поэтому я сомневаюсь, что мне следует создавать новую папку Content внутри каждой области и дублировать идентичные файлы. Объясните, пожалуйста, как мне решить проблему. И большое спасибо заранее.


person Сергей Чащин    schedule 21.08.2018    source источник
comment
Вы можете скопировать одинаковые относительные пути ссылок из файла _Layout верхнего уровня. например ~/Content/Site.css   -  person Jasen    schedule 22.08.2018
comment
@Jasen, пожалуйста, опубликуй это как решение, чтобы я мог пометить его как ответ.   -  person Сергей Чащин    schedule 04.10.2018


Ответы (1)


Вы можете использовать оператор виртуального корневого пути ~

Шаблонный _Layout, созданный для вас, дает вам пример.

<link href="~/Content/bootstrap.min.css" rel="stylesheet" type="text/css" />
...
<script src="~/Scripts/bootstrap.min.js"></script>

Даже внутри области он будет разрешаться в корневой контент и сценарии, поэтому ресурсы, Bootstrap в этом примере, не нужно копировать для каждой области.

Имейте в виду, что это решается на стороне сервера.

Итак, если вам нужно получить к нему доступ в скрипте на странице просмотра:

<script>
    var scriptRoot = "@Url.Content("~/Scripts")";
</script>

И в коде контроллера:

public ActionResult Index()
{
    ViewBag.BoostrapPath = Url.Content("~/Content/boostrap.css");

    return View();
}
person Jasen    schedule 04.10.2018