Как я могу получить @Url.Content()
, работающий в моем _Layout.cshtml
, когда RazorEngine используется из веб-API ASP.NET?RazorEngine WebApiTemplateBase @ Url.Content()
RazorEngine (v.3.7.2) касается только синтаксиса Razor, а не дополнительных вспомогательных методов, таких как @Html
или @Url
. Их можно добавить, расширив TemplateBase<>
и установив его в конфигурации.
В некоторых старых номерах есть примеры кода: #26, #29; в неизданной, неполной части кода в MvcTemplateBase.cs; и в документации для Extending the Template Syntax.
Моя проблема в том, что я использую ASP.NET Web API (v.1), который не будет иметь HttpContext.Current
(и не должен). Я хочу предоставить UrlHelper
, поскольку я хочу использовать его метод Content()
, но его необходимо создать с помощью HttpRequestMessage
, который будет недоступен.
Возможно, нет способа получить вспомогательные методы @Url для моего скомпилированного макета. Возможно, мне нужен другой способ получить абсолютный путь от виртуального пути. Кажется, мне все равно нужен какой-то способ проверки запроса.