2014-11-07 61 views
1

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

例如,PurchaseOrderController,我很困惑这个控制器应放置在哪里, 在管理区或客户区?

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

联系,因此可以看到所有的客户购买和细节,工艺购买 的(更新状态为正在进行中)

,我应该创建在管理区和客户区PurchaseOrderController? 你对这种情况的解决方案是什么?

回答

1

这听起来像两个完全不同的流程。你已经描述了一个单独的控制器可能是两个用例都需要的。否则,你可能会抛弃你的观点,如果逻辑上的if语句可能不属于该屏幕上的技术属性。

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

[Authorize(Roles="Administrators")] 
+0

我只是想我是否正确实施了区域,或者它是否是一种好方法,我们在不同的区域使用相同的控制器? – Willy 2014-11-07 03:01:11

+0

我会说它更好地去单独的区域,因为尽管有一些他们共享的组合,但您的视图模型应该与用户和管理员的视图模型不同。我相信,即使对管制员来说,最好也要关注分离问题。 – TysonWolker 2014-11-07 03:06:02

+0

对不起,延迟回复。同意,但控制器的名称呢?他们应该有相同的名字吗?你能否给出一个通常由MVC程序员完成的例子吗? – Willy 2014-11-13 10:40:03