Asp.net mvc 2 我在MVC2中面临的一个小问题是在不同的类库中分离控制器和模型

Asp.net mvc 2 我在MVC2中面临的一个小问题是在不同的类库中分离控制器和模型,asp.net-mvc-2,for-loop,project,controllers,Asp.net Mvc 2,For Loop,Project,Controllers,如果我使用不同的类库项目来保存控制器,那么我将如何创建控制器。以前我使用右键单击控制器文件夹,然后按添加控制器。类似地,如何创建新的强类型视图? 当我选择addview->strngly-typed-view时,数据类列表为空 是否需要进行一些配置?现在,右键单击控制器文件夹并按添加类按钮,然后编写一个派生自的类。就视图而言,除非实现自定义视图引擎,否则它们应该驻留在web应用程序中 我真的需要在我的视图项目中添加模型引用吗 没有 难道这不违背了心与心的分离吗 mvc的灵魂 是的 我的观点不应该

如果我使用不同的类库项目来保存控制器,那么我将如何创建控制器。以前我使用右键单击控制器文件夹,然后按添加控制器。类似地,如何创建新的强类型视图? 当我选择addview->strngly-typed-view时,数据类列表为空


是否需要进行一些配置?

现在,右键单击控制器文件夹并按添加类按钮,然后编写一个派生自的类。就视图而言,除非实现自定义视图引擎,否则它们应该驻留在web应用程序中

我真的需要在我的视图项目中添加模型引用吗

没有

难道这不违背了心与心的分离吗 mvc的灵魂

是的

我的观点不应该知道任何关于模型的事情,对吗

对。理想情况下,视图应该了解ViewModels,而不是模型。我知道这听起来像是劈头,但事实就是这样:)

您的视图应该知道您的ViewModels。控制器应该知道模型和视图模型。您的模型不应该知道其中任何一个。将您的模型视为完全独立于web应用程序的“业务逻辑”

我有一篇博文详细解释了这一点。看看“Model2:MVC for the web”一节


好的,现在我已经在我的视图项目中添加了模型参考项目。现在我可以创建强类型视图了。但这提出了一个小问题。我真的需要在我的视图项目中添加模型引用吗?这是否违反了mvc的核心和灵魂——关注点分离?我的视图不应该知道关于模型的任何信息,对吗?我应该把我的视图模型放在哪里?放在同一个项目或其他项目中?谢谢你的支持。就我个人而言,我不认为让你的控制器在不同的项目中有什么好处,为什么他们不能在web项目中生活?它们纯粹是一个网络问题。另一方面,我总是把模型放在一个单独的项目中。但正如我所解释的。。。我肯定想使用t4模板。因为我正在定制它们。。。现在我可以通过保留那些文件夹来创建控制器,即默认创建的控制器,但这不是一个好的做法…我可以简单地在控制器库中创建从控制器派生的类,但我不想这样做…感谢提供的信息。。。但是我的问题仍然是一样的……如果我使用不同的类库项目来保存我的控制器,那么我将如何创建控制器。以前我用鼠标右键点击controllers文件夹,然后按add controller?我想使用t4模板我没有t4模板的经验,因此我无法对此发表评论。然而,正如UpTheCreek在最初的帖子中评论的那样,我想知道为什么不将控制器留在web项目上。