我已經爲IUrlHelper創建了擴展方法。在擴展方法中使用.net核心依賴關係
public static class UrlHelperExtensions
{
public static string JavaScript(this IUrlHelper helper, string contentPath, IOptions<TypeScriptOptions> tsOptions)
{
if (tsOptions.Value != null && tsOptions.Value.Minify)
{
contentPath = Path.ChangeExtension(contentPath, ".min.js");
}
return helper.Content(contentPath);
}
public static string Css(this IUrlHelper helper, string contentPath, IOptions<LessOptions> lessOptions)
{
if (lessOptions.Value != null && lessOptions.Value.Minify)
{
contentPath = Path.ChangeExtension(contentPath, ".min.css");
}
return helper.Content(contentPath);
}
}
我想通過IOptions<TypeScriptOptions> tsOptions
和IOptions<LessOptions> lessOptions
使用.NET核心的依賴注入的方法。
在Razor視圖我有以下幾點:
@inject IOptions<CssOptions> lessOptions
<link href="@Url.Css("~/css/site.css", lessOptions)" rel="stylesheet" asp-append-version="true">
但我只想做:
<link href="@Url.Css("~/css/site.css")" rel="stylesheet" asp-append-version="true">
我試圖尋找在.NET核心文檔,我已經做了幾次谷歌搜索,但我似乎無法找到一種方法來實現我想要的,而不訴諸於Tag Helpers,這不是我想做的事。
我該如何得到這個工作?
傳遞到方法?你想製作一箇中間件嗎?擴展方法是靜態的,因此任何狀態都必須是靜態的或傳入的。 – Romoku
我已更新我的問題以提供答案。 –