偶然发现了我研究过的一个好奇心,却没有找到确切的答案。我正在为我的mvc项目添加一个视图,当我注意到当提到视图的模型时,很多类似乎都没有直接参考。例如,我可以在添加视图对话框中看到excel的所有ClosedXml类,但是在我的Bussines Logic项目中引用了该dll,而不是在Web项目中。那么1.为什么它出现在添加视图对话框的模型下拉列表中呢? 2.这个列表不应只包含models文件夹中的类吗?对不起,如果这是一个愚蠢的问题,但没有人能给我一个直接的答案。
答案 0 :(得分:5)
属于当前解决方案的所有公共类都显示在此列表中,而不仅仅是在当前程序集的Model文件夹中声明的那些类。即使是引用程序集中的类也会出现。有些课程将被过滤掉:
Controller
结尾的类型(以避免在列表中看到您的控制器)System
或Microsoft
命名空间答案 1 :(得分:1)
除了@DarinDimitrov的答案
例如,我可以在添加视图对话框中看到excel的所有ClosedXml类,但是我的Bussines Logic项目中引用了该dll
Visual Studio似乎遍历了所有引用,因此我假设您在MVC项目中有对业务组件的引用
现在原因是什么?这是因为你几乎可以使用任何public
实体作为你的模型
2.这个列表不应只包含models文件夹中的类吗?
否强>
MVC中的模型是代表您的视图的简单类,请不要对您当前的域模型感到困惑。他们使用相同的术语,但MVC中的模型只是一个简单的类,代表你的观点而没有更多
考虑到这一点,您可以使用任何公共类作为模型。
我认为这是背后的原因,虽然我很少在Visual Studio中使用该选项,因为通常显示列表内容需要太多时间,所以我更喜欢手动设置模型