Итак, я начал использовать синтаксис <%: Url.Content(~/site/blah) %>
в качестве стандарта для CSS, JScript и URL-адресов изображений - действительно решает много проблем;и это, по крайней мере, согласованно между страницами WebForms и Razor (не все мои разработчики будут работать с Razor, и все же они будут работать на этой платформе, которую я создал).
Однако за то, что я 'В настоящий момент я действительно могу найти способ взять относительный URL-адрес, записанный на странице Razor, и во время выполнения преобразовать его в правильный файл на стороне сервера, прежде чем превратить его в абсолютный URL-адрес для клиента.Url.Content
ничего не делает с относительными URL.
Так что, в принципе, я хочу либо эквивалент ResolveUrl
, либо ResolveClientUrl
на уровне Razor.
Мне бы хотелосьчтобы включить более краткие (и более терпимые к переименованию) пути к ресурсам в некоторых моих представлениях MVC, которые могут располагаться на несколько папок дальше от корня, и чья папка с содержимым будет легче выразить в виде относительного пути, чтобы я мог иметь:
folder\folder\views\shared\layout.cshtml
и
folder\folder\content\site.css
(я также предположил использование страницы макета для отражения проблем, решаемых с помощью ResolveUrlи переосмысление того, что делает WebForms)
Используя Url.Content
как есть, мне нужно указать полный путь:
Url.Content("~/folder/folder/content/site.css")
Но что яхотелось бы, чтобы это было
Url.Content("../../site.css")
И эта работа, конечно, не зависимо от того, сколько путей есть в маршруте текущего запроса.
Конечно, я могу получитьэто работает в WebForms, если я отказываюсь от вызова Url.Content и просто полагаюсь на изменение URL-адреса.
Есть ли в Razor эквивалент?