如何从 Asp.Net 5(核心)mvc 解决方案中的代码库访问 Encoder.Default.HtmlEncode 方法?

How to access Encoder.Default.HtmlEncode method from code library in Asp.Net 5 (core) mvc solution?

我在 Visual Studio 2015 Update 2 中有一个使用 Asp.Net 5 RC1 的 Asp.Net 5(核心)解决方案,它有两个项目,一个 Asp.net 5 网站项目和一个 "Class Library (Package)" 项目。

我希望能够从我的 class 库中调用以下方法:

 HtmlEncoder.Default.HtmlEncode(text) 

但是,我无法弄清楚需要在项目上设置什么引用才能使该方法可用。我注意到,如果我将以下 using 语句添加到包含方法调用的文件中,我可以从 Asp.net 5(核心)网站项目访问该方法:

using Microsoft.Extensions.WebEncoders;

但是,当我尝试将此 using 语句添加到 class 库项目中的文件时,Visual Studio 表明由于缺少项目引用,不存在此类命名空间。

我搜索了又搜索,但我无法弄清楚访问该命名空间需要什么项目引用。我假设这是一个需要的 nuget 包参考,但是当我转到项目的 "Manage NuGet Packages" 时,可用包列表是空的。

我需要什么项目参考,如何获取?

在您的 project.json

中添加对 "Microsoft.Extensions.WebEncoders ": "1.0.0-rc1-final" 的引用

我刚刚安装了 ASP.NET Core 版本,我在 Microsoft 提供的名为 ASP.NET MVC 6 Documentation, Release 的文档中遇到了同样的问题。

我找到的解决方案是:

替换 使用 Microsoft.Extensions.WebEncoders; 经过 使用 Microsoft.AspNetCore.Mvc; 使用 System.Text.Encodings.Web;

并替换 return HtmlEncoder.Default.HtmlEncode( 经过 return HtmlEncoder.Default.Encode(

而且有效!