Asp.NET 5 中的 HtmlEncode 在哪里
Where is HtmlEncode in Asp.NET 5
我有一个使用 TagBuilder
和 returns 和 HtmlString
的自定义 IHtmlHelper
扩展方法。我不能再将 tagBuiler.ToString()
传递给 HtmlString
构造函数,因为现在只是 returns 类型名。
我知道我可以使用 tabBuiler.WriteTo(TextWriter, IHtmlEncoder)
方法,但我不知道如何得到实现 IHtmlEncoder
的对象。我在 System.Text.Encodings.Web
和 Microsoft.Framework.WebEncoders
中都看到了编码器。但是这两个命名空间中的类型似乎不能很好地协同工作。
Microsoft.Extensions.WebEncoders.Core
中的 HtmlEncoder
只是 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
方法。
从我在开发分支 MVC 中看到的情况来看,直接使用 System.Text.Encodings.Web.HtmlEncoder
因此您以后不需要再使用 Microsoft.Extensions.WebEncoders.HtmlEncoder
。
关于 RC1 更新 1,它是这样完成的:
using System.Text.Encodings.Web;
...
HtmlEncoder.Default.Encode("...");
在 ASP.NET Core RC2 中,您可以在 System.Net.WebUtility
中找到 HtmlDecode
:
在您的 project.json 导入依赖项中 system.net.utilities
"dependencies": {
"System.Text.Encodings.Web": "4.0.0-rc2-24027"
}
只需使用 System.Net.WebUtility.HtmlEncode 或解码为:
System.Net.WebUtility.HtmlEncode()
System.Net.WebUtility.HtmlDecode()
我有一个使用 TagBuilder
和 returns 和 HtmlString
的自定义 IHtmlHelper
扩展方法。我不能再将 tagBuiler.ToString()
传递给 HtmlString
构造函数,因为现在只是 returns 类型名。
我知道我可以使用 tabBuiler.WriteTo(TextWriter, IHtmlEncoder)
方法,但我不知道如何得到实现 IHtmlEncoder
的对象。我在 System.Text.Encodings.Web
和 Microsoft.Framework.WebEncoders
中都看到了编码器。但是这两个命名空间中的类型似乎不能很好地协同工作。
Microsoft.Extensions.WebEncoders.Core
中的 HtmlEncoder
只是 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
方法。
从我在开发分支 MVC 中看到的情况来看,直接使用 System.Text.Encodings.Web.HtmlEncoder
因此您以后不需要再使用 Microsoft.Extensions.WebEncoders.HtmlEncoder
。
关于 RC1 更新 1,它是这样完成的:
using System.Text.Encodings.Web;
...
HtmlEncoder.Default.Encode("...");
在 ASP.NET Core RC2 中,您可以在 System.Net.WebUtility
中找到 HtmlDecode
:
在您的 project.json 导入依赖项中 system.net.utilities
"dependencies": {
"System.Text.Encodings.Web": "4.0.0-rc2-24027"
}
只需使用 System.Net.WebUtility.HtmlEncode 或解码为:
System.Net.WebUtility.HtmlEncode() System.Net.WebUtility.HtmlDecode()