我正在使用Web API v2,并且我有一些模型需要执行CRUD操作。例如,我有一个Allergy
模型和一个Prescription
模型。在应用程序本身中,我有视图模型可以转化为适当的模型,但为了简单起见,我们只是说我直接在Web API控制器中使用模型。通用Web API控制器
因此,像这样:
public class PrescriptionsController
{
public HttpResponseMessage Put(Prescription model)
{
// saved to the DB
}
... (other CRUD operations)
}
我也有同样的Allergy
型号:
public class AllergiesController
{
public HttpResponseMessage Put(Allergy model)
{
// saved to the DB
}
... (other CRUD operations)
}
这两种型号有不同的属性,但是否完全相同的方式处理 - 事实上我有约3个其他模型的处理方式与每个CRUD操作完全相同。我讨厌做5个不同的终端,这些终端基本上是复制和粘贴的代码。
所以我的问题是这样的:
我可以做一个通用的控制器来处理所有这些模型的?像MyCommonController<T>
? (但当然有更好的名字!)Web API可以处理该场景中的路由吗?这是一个好主意吗?
我认为你可以通过不同的方式实现这一点..通过路由。我没有尝试,但会看到。 – Guanxi
似乎可能。 下面是关于它的讨论:http://stackoverflow.com/questions/12077361/generic-webapi-controller – Trisk