Asp.net mvc 如何在MVC中使用Area

Asp.net mvc 如何在MVC中使用Area,asp.net-mvc,asp.net-mvc-areas,Asp.net Mvc,Asp.net Mvc Areas,我有点困惑如何在MVC中使用area。 我为管理员和客户创建了两个区域,但是管理员和客户可以访问同一个控制器 例如,PurchaseOrderController,我不知道这个控制器应该放在哪里, 在行政区还是客户区 客户可以创建puchase订单,编辑采购(如果尚未处理), 并显示他的购买和细节 管理员,可以看到所有的客户购买和详细信息,处理购买 (将状态更新为“正在进行”) 那么,我应该在管理区和客户区创建PurchaseOrderController吗? 您对此案例的解决方案是什么?听起来

我有点困惑如何在MVC中使用area。 我为管理员和客户创建了两个区域,但是管理员和客户可以访问同一个控制器

例如,PurchaseOrderController,我不知道这个控制器应该放在哪里, 在行政区还是客户区

客户可以创建puchase订单,编辑采购(如果尚未处理), 并显示他的购买和细节

管理员,可以看到所有的客户购买和详细信息,处理购买 (将状态更新为“正在进行”)

那么,我应该在管理区和客户区创建PurchaseOrderController吗?
您对此案例的解决方案是什么?

听起来像是两个完全不同的流程。您所描述的,对于这两种用例,可能都需要一个单独的控制器。否则,您可能会在视图中乱放逻辑的if语句,这些语句在技术上可能不属于该屏幕

Authorize可以在控制器和方法级别使用,所以如果您发现它在单独的控制器中没有意义,请将它们合并为一个控制器

[Authorize(Roles="Administrators")]

我只是在想,我是否正确地实现了区域,或者这是一个好方法,我们在不同的区域有相同的控制器?我会说,最好是分开区域,因为您的视图模型应该不同于用户和管理员的视图模型,尽管它们有一些共同的组成。我相信,即使对于控制器来说,也最好遵循关注点分离。很抱歉,回复太晚。同意,但是控制器的名称呢?他们应该同名吗?您能给出一个通常由MVC程序员完成的常见示例吗?