【发布时间】:2015-06-02 00:21:07
【问题描述】:
我正在使用 ef6 代码优先类型 db 构建一个基于 mvc 的网站。现在我有一个名为 Categories Controller 的 web api 控制器,它可以很好地工作并将 json 数据发送到我的 js 请求。
// GET: api/Categories
public IQueryable<Category> GetCategories()
{
return db.Categories;
}
现在我需要为产品、材料和其他一些实体进行相同的接线。我想要的是这样的: //GET: api/数据/类别 //GET: api/Data/Products
等等。全部连接到一个 DataController。有没有办法做到这一点?
例如一个数据控制器,所有类别特定的 API 操作、产品特定的 API 操作等都有单独的代码区域。然后我可以做 /api/Data/Categories/Create 或 api/Data/Products/Create
【问题讨论】:
-
为什么不能在一个类或匿名对象中返回所有这些?
-
见Generic WebApi Controller。你介意每个实体类都有一个控制器类吗?如果你这样做,你可以 implement your own
IHttpControllerSelector返回new GenericCRUDController<T>其中T根据请求的控制器解析,映射到实体类型。
标签: asp.net-mvc asp.net-web-api