我想將自定義設定為在 Asp.net Core Razor 頁面中使用HtmlEncoder的默認值。HtmlEncoder
該類RazorPageBase確實有一個HtmlEncoder屬性,我可以像這樣在單個 Razor 頁面上設定它:
using System.Text.Encodings.Web;
using System.Text.Unicode;
@{
HtmlEncoder = HtmlEncoder.Create(UnicodeRanges.All);
}
然后在HtmlEncoder該頁面上使用 。
現在要嘗試的顯而易見的事情是將此代碼應用于“ViewStart.cshtml”:
using System.Text.Encodings.Web;
using System.Text.Unicode;
@{
Layout = "_Layout";
HtmlEncoder = HtmlEncoder.Create(UnicodeRanges.All);
}
但是,這不起作用,它仍然使用默認值HtmlEncoder(它編譯得很好并且它確實選擇了 Layout 屬性)。
這意味著,要HtmlEncoder為所有頁面設定默認值,我必須將上面的代碼包含到每個 Razor 頁面中,包括每個部分頁面,當然還有“_Layout.cshtml”。
我希望我錯過了什么。
如何在全球范圍內指定它以使其適用于所有 Razor 頁面?
uj5u.com熱心網友回復:
在您的應用配置中,執行以下操作:
[.NET 6 Program.cs]
builder.Services.Configure<WebEncoderOptions>(options =>
{
options.TextEncoderSettings = new TextEncoderSettings(UnicodeRanges.All);
});
或者
[Pre-.NET 6 Startup.cs]
services.Configure<WebEncoderOptions>(options =>
{
options.TextEncoderSettings = new TextEncoderSettings(UnicodeRanges.All);
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480464.html
