首页 > 解决方案 > Razor 视图中的命名空间无效

问题描述

我一切正常。但后来我决定将一种类型移动DateTimeRange到单独的项目(同一解决方案中的 DLL)。我也将命名空间从更改XYZ.ABCXYZ.DEF.

它在 Visual Studio 中运行良好,但在我在 上发布站点后IIS,它会引发异常。

System.Web.HttpCompileException (0x80004005)
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\...\App_Web__viewName.cshtml.a05ae3fa.cybothwk.0.cs(31):
error CS0234: The type or namespace name 'DateTimeRange' does not exist in the namespace 'XYZ.ABC' (are you missing an assembly reference?)

DateTimeRange它说它在命名空间中找不到XYZ.ABC。但是我已经更新了视图以使用更新的命名空间中的模型。

我试图清除 ASP.NET 临时文件,但没有帮助。我引用了copy local设置为 true 的第二个项目。

标签: iisrazorvisual-studio-2015asp.net-mvc-5

解决方案


1)您需要检查的第一件事是 ASP.NET MVC 项目中的类库引用是否将“复制本地”属性设置为 true。

2)在 Views 文件夹(不是根文件夹 web.config 文件)下的 web.config 文件的标签内手动添加无法找到的命名空间:

<namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Optimization"/>
    ...
  </namespaces>

3)试图将命名空间直接添加到导致问题的视图本身。在视图的开头添加@using 指令:

@using MyCustomClass;

4)需要检查类项目的属性:

  • 在 Visual Studio 中打开项目。
  • 右键单击项目名称,然后单击属性。
  • 在“应用程序”选项卡下,“输出类型”已选择“类库” 在此处输入图像描述

推荐阅读