Asp.NET 5中的HtmlEncode在哪里?

Kei*_*ill 11 asp.net asp.net-mvc html-encode asp.net-core-mvc asp.net-core

我有一个自定义IHtmlHelper扩展方法,使用TagBuilder并返回一个HtmlString.我不能再传递tagBuiler.ToString()HtmlString构造函数只返回类型名称现在.

我看到我可以使用这个tabBuiler.WriteTo(TextWriter, IHtmlEncoder)方法,但我不确切知道如何让我的手触及一个物体IHtmlEncoder.我看到了两个编码器System.Text.Encodings.WebMicrosoft.Framework.WebEncoders.但是两个命名空间中的类型似乎并不能很好地结合在一起.

Mir*_*lec 15

在ASP.NET核心RC2,你可以找到HtmlDecodeSystem.Net.WebUtility:

在您的project.json中导入依赖关系system.net.utilities

"dependencies": {
    "System.Text.Encodings.Web": "4.0.0-rc2-24027"
}
Run Code Online (Sandbox Code Playgroud)


Pav*_*ets 11

HtmlEncoderin Microsoft.Extensions.WebEncoders.Core只是System.Text.Encodings.Web.HtmlEncoder实现IHtmlEncoder接口的一个包装器(https://github.com/aspnet/HttpAbstractions/blob/release/src/Microsoft.Extensions.WebEncoders.Core/HtmlEncoder.cs).

你可以采取Microsoft.Extensions.WebEncoders.HtmlEncoder.Default并传递给WriteTo方法.

从我在dev分支中看到的MVC转移到System.Text.Encodings.Web.HtmlEncoder直接使用所以你Microsoft.Extensions.WebEncoders.HtmlEncoder将来不再需要使用了.


Gre*_*nis 5

至于RC1更新1,以下是它的完成方式:

using System.Text.Encodings.Web;

...

HtmlEncoder.Default.Encode("...");
Run Code Online (Sandbox Code Playgroud)