Asp.net mvc 3 目录中每个视图的不同控制器?

Asp.net mvc 3 目录中每个视图的不同控制器?,asp.net-mvc-3,Asp.net Mvc 3,我希望在一个目录中为每个视图分离控制器逻辑,而不是将所有视图都放在一个控制器中,因为我不希望在一个控制器中有那么多操作。有什么办法可以做到这一点 Views-- FooFolder Fooview.cshtml Barview.cshtml Controllers-- FooController.cs BarController.cs 不要求在某个文件夹中有视图,也不要求在某个控制器中有操作。这只是一个约定,您可以通过

我希望在一个目录中为每个视图分离控制器逻辑,而不是将所有视图都放在一个控制器中,因为我不希望在一个控制器中有那么多操作。有什么办法可以做到这一点

Views--
    FooFolder
            Fooview.cshtml
            Barview.cshtml


Controllers--
    FooController.cs
    BarController.cs

不要求在某个文件夹中有视图,也不要求在某个控制器中有操作。这只是一个约定,您可以通过(例如)替换视图引擎或更改路由定义或显式指定视图路径来更改它。但是,如果您想分离控制器逻辑,那么开始的地方不是控制器本身,而是将逻辑卸载到其他地方的业务方法中,然后从控制器调用这些方法。

出于好奇,为什么要这样做?您可以使用分部类——它至少可以将逻辑分离到多个文件中。我喜欢让我的控制器保持苗条,这样我就不会因为逻辑太多而遇到这种情况……Barview.cshtml不应该放在BarFolder中吗?惯例是每个控制器有一个视图文件夹,对吗?所以,在创建控制器和查看文件夹的过程中,你可以轻松自如。正如@JohnKalberer所建议的,使用分部类,你就不会有那么多的文件夹了。您可以在解决方案资源管理器中看到所有不同的子控制器(部分类),但所有关联的视图都将保留在一个文件夹中。不必担心逻辑太多。只是想用动作方法保持控制器的轻量级。这些视图将有许多事件处理程序。已同意。如果你发现你的控制器动作因为逻辑而变得臃肿,那么我建议你看视频。这不是关于卸载逻辑。我将有许多视图,其中包含许多要处理的事件,最好将每个控制器的操作方法数目保持在较小的数目,并且我可能希望为某些控制器而不是其他控制器注入服务。