C# 无法将MvcHtmlString/IHtmlString与RazorEngine一起使用

C# 无法将MvcHtmlString/IHtmlString与RazorEngine一起使用,c#,nunit,razorengine,C#,Nunit,Razorengine,我刚开始玩RazorEngine,在使用静态助手方法时遇到了麻烦。它只是为模板生成一个MvcHtmlString/IHtmlString。调用Razor.Parse(…)时,我得到 我添加了对System.Web,System.Web.Mvc,System.Web.WebPages的引用。还尝试将它们添加到cshtml中(@使用System.Web,@使用System.Web.Mvc)。 但是@使用System.Web.Mvc会导致。Mvc在System.Web中不可用 目前,我正在尝试在NUn

我刚开始玩RazorEngine,在使用静态助手方法时遇到了麻烦。它只是为模板生成一个MvcHtmlString/IHtmlString。调用Razor.Parse(…)时,我得到

我添加了对
System.Web
System.Web.Mvc
System.Web.WebPages
的引用。还尝试将它们添加到cshtml中(
@使用System.Web
@使用System.Web.Mvc
)。 但是
@使用System.Web.Mvc
会导致
。Mvc
System.Web
中不可用


目前,我正在尝试在NUnit测试中构建模板。

RazorEngine有一个类编译器服务实用程序。这负责在编译视图时加载并使程序集可用。默认情况下,它返回当前AppDomain中加载的所有程序集


对于查看代码的人来说,这有点不直观,但是确保Razor视图已编译并且可以使用MvcHtmlString的一种方法是在执行/编译视图之前,使用AppDomain.current.load(“”)将System.Web和System.Web.Mvc程序集加载到当前AppDomain中。

一个老问题@戈帕尔有正确的答案。除了添加以下代码外,我还必须将对System.Web的引用设置为“复制本地”

AppDomain.CurrentDomain.Load("System.Web");

好的,如果我在代码中创建
MvcHtmlString
,然后尝试
Parse
一个模板,它就可以工作了。因此,在Razor模板中使用之前,可能需要使用C#code中的
System.Web.Mvc
命名空间中的某些内容?我遇到了同样的问题,您找到解决方案了吗?谢谢有人在这里回答我:对应用领域的东西缺乏经验。我花了5个小时才弄明白。这就是当你有一个伟大的库和一个糟糕的文档时会发生的事情!谢谢
AppDomain.CurrentDomain.Load("System.Web");