如何将路由参数传递给控制器​​构造函数

时间:2017-03-06 15:29:29

标签: c# asp.net asp.net-mvc asp.net-web-api routing

我有一个需要路由/结构清理的Web API 4.6。让我们考虑以下路由配置:

let mut timer = SystemTime::now();
timer += Duration::from_secs(86400);
token.claims.reg.exp = Some(timer.duration_since(UNIX_EPOCH).unwrap().as_secs());

我希望public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "BaseRoute", routeTemplate: "api/{source}/{sourceDocumentName}/{entity}/{projectNumber}/{action}/{outputType}" ); } 管理所选的控制器并传递给构造函数。因此,如果{sourceDocumentName}它将解析为{sourceDocumentName} == "Purchase" || "Order"并将参数传递给构造函数。

1 个答案:

答案 0 :(得分:2)

要理解的是Mvc请求管道。当请求进入时,路由表即MvcRouteHandler执行并获取MvcHttpHandler的实例,该实例基本上在{{1}的帮助下基于路由数据初始化需要映射的控制器}。

基本上,您所看到的是拥有自己ControllerFactory的自定义实现,以便能够使用此请求管道。