IHtmlHelper
を使用してTagBuilder
を返すカスタムのHtmlString
拡張メソッドがあります。 tagBuiler.ToString()
をHtmlString
コンストラクターに渡すことができなくなりました。これは、タイプ名を返すだけだからです。
tabBuiler.WriteTo(TextWriter, IHtmlEncoder)
メソッドを使用できるようですが、IHtmlEncoder
を実装するオブジェクトを取得する方法が正確にわかりません。 System.Text.Encodings.Web
とMicrosoft.Framework.WebEncoders
の両方にエンコーダーがあります。しかし、2つの名前空間の型は一緒にうまく機能していないようです。
Microsoft.Extensions.WebEncoders.Core
のHtmlEncoder
は、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
を使用する必要はなくなります。
ASP.NET Core RC2では、System.Net.WebUtility
にHtmlDecode
があります。
Project.jsonで依存関係system.net.utilitiesをインポートします
"dependencies": {
"System.Text.Encodings.Web": "4.0.0-rc2-24027"
}
RC1アップデート1に関しては、次のように実行されます。
using System.Text.Encodings.Web;
...
HtmlEncoder.Default.Encode("...");
System.Net.WebUtility.HtmlEncodeを使用するか、次のようにデコードします。
System.Net.WebUtility.HtmlEncode()System.Net.WebUtility.HtmlDecode()