在cshtml中找不到RazorEngine命名空间

时间:2018-01-15 11:37:31

标签: c# asp.net-mvc razor

我有一个安装了剃刀引擎包的项目(https://github.com/Antaris/RazorEngine)。我有多个模板,我无法编译其中的一些。错误总是一样的:

  

类型或命名空间名称' X'命名空间中不存在' Y'

我的项目不使用MVC。只有RazorEngine用于模板编译。不包含引用X的模板按预期工作。所有其他人都有这个问题。

如果我查看项目引用,我可以看到引用位于标记Copy Local to true。此外,在bin文件夹中,我还可以看到正在复制dll。由于某种原因,它没有被编译。

此RazorEngine库的情况类似吗?

最诚挚的问候。

2 个答案:

答案 0 :(得分:0)

您必须在web.config中添加名称空间:

<system.web.webPages.razor>
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
            <add namespace="My Namespace" />
        </namespaces>
    </pages>
</system.web.webPages.razor>

答案 1 :(得分:0)

发生的事情是RazorEngine无法找到某些命名空间(即使已引用)。在我的特定情况下,我有一些模板具有:

@using System.Linq

由于某些原因,此特定的RazorEngine程序包无法解释Linq命名空间。我要解决的问题是删除Linq引用,并将所有Linq表达式替换为正常的代码表达式。

此外,在其他一些视图中,我对项目引用存在一些问题,其中包括不支持的其他引用。这意味着System.Linq可能不是唯一不受支持的名称空间。