是否有可能以变量结尾的班级Route
?
例如:
[Route("api/{carType}")]
public class CarController : Controller
{
..rest of class
}
如果是这样,您将如何访问该变量?
或者我只想到这完全错了?我有几个对象都来自同一个抽象类,现在我有一个不同的控制器,但实际上它们都是相同的。我认为可以使用泛型方法来处理所有内容,但不确定解释对象实际类型的最佳方法。
前:
[Route("api/{carType}")]
public class CarController : Controller
{
[HttpGet()]
public IActionResult GetCars()
{
IActionResult result;
switch(carType){
case "Ford":
result = myService.GetCars<Ford>();
break;
case "Toyota":
result = myService.GetCars<Toyota>();
break;
....
}
return result;
}
}
答案 0 :(得分:1)
是的,我已多次这样做了。您将创建一个路由,该路由映射到采用类名称然后使用反射的泛型操作,在该操作上调用您想要的任何方法。
答案 1 :(得分:1)
是的,您可以像以下示例一样执行此操作:
[RoutePrefix("customers/{customerId}")]
public class OrdersController : ApiController
{
// GET customers/1/orders
[Route("orders")]
public IEnumerable<Order> Get(int customerId)
{
...
}
}