iis - Razor 视图中的命名空间无效
问题描述
我一切正常。但后来我决定将一种类型移动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)您需要检查的第一件事是 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)需要检查类项目的属性:
推荐阅读
- css - 为什么 wp 子主题中的 Css 文件代码写成注释行?
- python - Check how many unique sub lists in a list
- javascript - 用于循环异步等待的 Firebase 函数
- pandas - How do I get data out of XlsxWriter?
- fortran - How to translate from EQUIVALENCE to index offset
- php - PHP - 尝试 POST 到后端并返回 500 错误?
- shell - 在 Makefile 使用 Docker 容器中定义的环境变量来运行命令
- sql-server - 获取字符串分隔符内的子字符串 SQL Server 2012
- java - 在 Android Gradle Plagin 中运行 gradle task JavaExec?
- data-structures - 是否有用于查找匹配任意范围的值的数据结构?