Razor视图中的无效名称空间

时间:2019-10-22 13:32:17

标签: iis razor visual-studio-2015 asp.net-mvc-5

我一切正常。但是后来我决定将一种类型DateTimeRange移到单独的项目(同一解决方案中的DLL)。我也将命名空间从XYZ.ABC更改为XYZ.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的第二个项目。

1 个答案:

答案 0 :(得分:1)

1)您需要检查的第一件事是ASP.NET MVC项目中类库的引用是否将“ Copy Local”属性设置为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中打开项目。
  • 右键单击项目名称,然后单击属性。
  • 在“应用程序”选项卡下,“输出类型”已选择“类库” enter image description here
相关问题