【发布时间】:2017-11-30 04:20:15
【问题描述】:
是否有人遇到过视图无法从程序集中加载类型的问题,因为您已将类型移动到同一程序集上的不同命名空间? 唯一的解决方案是我在视图上添加新行以检测更改。
示例:
组装:MyProject
初始:MyProject.View.SomeViewMode、MyProject
视图:_SomeView
将 SomeViewModel 移动到其他文件夹
组装:MyProject
已移动:MyProject.ViewModel.SomeViewModel、MyProject
视图:_SomeView
遇到错误(无法从程序集 MyProject 加载类型 MyProject.View.SomeViewModel)
解决方法:在 _SomeView 中添加新行
模型声明: @model SomeViewModel
Web.config
system.web.webPages.razor
命名空间:MyProject.ViewModel
您对此问题有其他解决方案吗? 感谢您的所有帮助
【问题讨论】:
-
能否补充一下在_SomeView 中定义SomeViewModel 的方式?
-
就这么简单:就编译器而言,编译器的类名就是全名(命名空间+类名)。如果你改变了命名空间,你必须告诉编译器。没有其他魔术。当然,您可以将类移动到不同的文件夹但不更改其命名空间,那么一切都应该没问题,但这不是很好的组织。
-
我在我的问题中添加了更多细节
-
只是重新构建...有时 ASP.Net 会感到困惑,并且在程序集更改时不会自动重新启动站点(好的,有规则,但是在您清理和构建时不应该发生)...或者,也许您以不重新启动站点的方式构建程序集 - 这将是完全预期的行为......
-
- 清理,构建(问题仍然存在) - 清理文件夹,TF Get,清理,构建(问题仍然存在) - 清理,构建,IISReset(问题仍然存在) - 添加新行以查看(问题已解决)我不想继续这样做
标签: c# .net asp.net-mvc razor