web-dev-qa-db-ja.com

Asp.NET5のHtmlEncodeはどこにありますか

IHtmlHelperを使用してTagBuilderを返すカスタムのHtmlString拡張メソッドがあります。 tagBuiler.ToString()HtmlStringコンストラクターに渡すことができなくなりました。これは、タイプ名を返すだけだからです。

tabBuiler.WriteTo(TextWriter, IHtmlEncoder)メソッドを使用できるようですが、IHtmlEncoderを実装するオブジェクトを取得する方法が正確にわかりません。 System.Text.Encodings.WebMicrosoft.Framework.WebEncodersの両方にエンコーダーがあります。しかし、2つの名前空間の型は一緒にうまく機能していないようです。

11
Keith Hill

Microsoft.Extensions.WebEncoders.CoreHtmlEncoderは、IHtmlEncoderインターフェイスを実装するためのSystem.Text.Encodings.Web.HtmlEncoderの単なるラッパーです( https://github.com/aspnet/HttpAbstractions/blob/ release/src/Microsoft.Extensions.WebEncoders.Core/HtmlEncoder.cs )。

Microsoft.Extensions.WebEncoders.HtmlEncoder.Defaultを取得して、WriteToメソッドに渡すことができます。

私が開発ブランチで見たものから、MVCはSystem.Text.Encodings.Web.HtmlEncoderを直接使用するように移行したため、今後Microsoft.Extensions.WebEncoders.HtmlEncoderを使用する必要はなくなります。

11
Pavel Krymets

ASP.NET Core RC2では、System.Net.WebUtilityHtmlDecodeがあります。

Project.jsonで依存関係system.net.utilitiesをインポートします

"dependencies": {
    "System.Text.Encodings.Web": "4.0.0-rc2-24027"
}
15
Miroslav Holec

RC1アップデート1に関しては、次のように実行されます。

using System.Text.Encodings.Web;

...

HtmlEncoder.Default.Encode("...");
5
Greg Ennis

System.Net.WebUtility.HtmlEncodeを使用するか、次のようにデコードします。

System.Net.WebUtility.HtmlEncode()System.Net.WebUtility.HtmlDecode()

4
Long Field