这真的很奇怪。听起来,我尝试使用Visual Studio 2015
(Enterprise)
创建名为 MvcApplication 的项目/解决方案。我选择MVC
模板并保留所有默认值。
它成功创建。我构建解决方案没有任何错误或警告。当我运行项目(开始调试)时,它加载ASP.NET MVC主页,这很好。 enter image description here
当我单击立即注册时会抛出错误CS0426:类型名称Models
在MvcApplication
类型中不存在。
在源文件中的某些位置在temp文件夹中。 (附上截图)。 enter image description here
到目前为止,我尝试使用以下
来解决这个问题
1.关闭解决方案并重启机器。 (没用)
2.删除所有临时文件(不起作用)
3.创建具有不同名称(工作)的其他应用程序
4.在上面的解决方案中添加同名“MvcApplication”的新项目(同样的问题 - 不起作用,但它证明了名称MvcApplication存在问题。)
5.谷歌它(关于CS0426错误没什么帮助) - 它没有任何意义。 (为什么?)
6. MSDN,StackOverflow,其他博客报告错误但不是原因或解决方案?仍然疑惑为什么?
我希望我可以提供帮助,但我需要确认您无法在您的解决方案中将您的项目命名为“MvcApplication”并希望能够正常工作。我错了。但在这种情况下我需要更多证据。
任何帮助将不胜感激。
感谢。
答案 0 :(得分:0)
假设Register
视图具有此模型绑定:
@* Register view *@
@model MvcApplication.Models.RegisterViewModel
由于您有MvcApplication
作为项目/解决方案名称(包括项目命名空间),因此在定义视图模型时,MvcApplication
中已经提供的Global.asax
类可能存在命名冲突:
// Global.asax
namespace MvcApplication
{
public class MvcApplication : System.Web.HttpApplication
{
// other stuffs here
}
}
// Model class
namespace MvcApplication.Models // ==> potential naming collision when being used in view
{
public class RegisterViewModel
{
// some properties here
}
}
为避免与上面显示的MvcApplication
类发生冲突,您可以在视图页中使用global
这样的完全限定名称:
@model global::MvcApplication.Models.RegisterViewModel
或只是将项目名称空间更改为其他名称。
类似问题:
The type name 'Models' does not exist in the type 'System.Web.Helpers.Chart'