ASP.NET Web API,拥有一个用于所有业务对象的控制器是否是一种良好的做法?
例如,我的控制器中有以下路径:
[Route("{resource}/{id}")]
[HttpGet]
public HttpResponseMessage Get(string resource, int id)
{
// code not shown for brevity...
}
基于此,我有大约50个业务对象,每个业务对象都有一个名为"Resource"的属性,它基本上是作为字符串的类的名称(例如"Customer"、"Order"(。在上面的控制器操作中,我使用路由参数"resource"one_answers"id"检索资源。例如:
获取/客户/1234和获取/订单/5678
这种做法不好吗?为每个业务对象创建一个控制器更好吗?每种方法的优缺点是什么?
我喜欢苹果的做法。
每个视图仅由一个视图控制器控制。~查看iOS版控制器编程指南其想法是,您应该能够轻松地交换视图。IMO,通过每个视图只有一个控制器,可以更容易地实现这一点。
尽管这是一条一般的经验法则,但所需控制器的数量取决于Web应用程序中的模块和子模块的数量。
作为补充,将控制器组织到区域中会很有帮助。Area的概念构建在ASP.NET MVC框架中,它简化了为一个模块服务的控制器的组织。
有许多相关的讨论:
MVC架构
MVC控制器和查看目录组织
MVC类组织对于多个视图和控制器是什么样子的?
ASP.NET MVC控制器操作设计