不能在razorenengine中使用MvcHtmlString/IHtmlString
本文关键字:MvcHtmlString IHtmlString razorenengine 不能 | 更新日期: 2023-09-27 18:18:28
我刚开始使用RazorEngine,当使用静态助手方法时我很困惑。它只是为模板生成一个MvcHtmlString/IHtmlString。调用Razor.Parse(…)我得到了
RazorEngine.Templating.TemplateCompilationException : Unable to compile template.
Der Typ 'System.Web.IHtmlString' ist in einer nicht referenzierten Assembly definiert. (not referenced)
Fügen Sie einen Verweis auf die Assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' hinzu.
我添加了对System.Web
, System.Web.Mvc
, System.Web.WebPages
的引用。还尝试将它们添加到cshtml (@using System.Web
, @using System.Web.Mvc
)。但是@using System.Web.Mvc
在.Mvc
中的结果在System.Web
中是不可用的?!
我正在尝试构建模板在NUnit测试当前。
razerengine有一个CompilerServicesUtility类。它负责在编译视图时加载程序集并使其可用。默认情况下,它返回当前AppDomain中加载的所有程序集。
对于看代码的人来说,这有点不直观,但是确保你的Razor视图编译并且你可以使用MvcHtmlString的一种方法是加载System。在执行/编译视图之前,使用AppDomain. current . load(")将Web和System.Web.Mvc程序集导入当前的AppDomain。
一个老问题。@Gopal有正确答案。除了添加以下代码外,我还必须将引用设置为System。Web复制本地。
AppDomain.CurrentDomain.Load("System.Web");