繁体   English   中英

类变量在asp.net中的路由

[英]Class level Route in asp.net with variable

是否可以有一个以变量结尾的类级别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; 
     }
}

是的,我已经做了很多次。 您将创建一条路由,该路由映射到采用类名称的通用操作,然后使用反射调用该操作上您想要的任何方法。

是的,您始终可以按照以下示例进行操作:

[RoutePrefix("customers/{customerId}")]
public class OrdersController : ApiController
{
    // GET customers/1/orders
    [Route("orders")]
    public IEnumerable<Order> Get(int customerId) 
    { 
      ... 
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM