我有一個自定義路由處理程序女巫我想在不同的控制器上使用。現在,我讓我的控制器使用該路由處理的唯一方法是將其設置這樣使用路由屬性時設置web api路由處理程序
RouteTable.Routes.MapHttpRoute(
name: "CustomRouteHandler",
routeTemplate: "/custom/{controller}/{action}",
defaults: new { id = RouteParameter.Optional, action = RouteParameter.Optional }
).RouteHandler = new CustomRouteHandler();
我真的想用路由屬性這樣
[HttpGet]
[Route(Name = "GetCart")]
public Cart Get()
{
return _repository.Get();
}
但是,當我使用路由屬性,似乎無法弄清楚如何確保我使用自定義路由處理程序。最好我只使用路由屬性,所以如果我可以使用像「RouteHandler」這樣的屬性,並在這裏指向我的「CustomRouteHandler」,這將是完美的。
是否有我可以使用這樣的屬性,或者我可以以某種方式將MapHttpRoute中的所有內容都指向「/ Custom」,然後使用此處的路由屬性並使所有控制器都具有自定義處理程序?
另一種選擇也許可以使我自己的屬性,以使控制器或方法來使用我的自定義路由處理程序?
我試圖讓開發者看到這個控制器或方法使用自定義路由處理程序,如果新開發人員應該添加另一個控制器,他們可以使用像「/ custom」這樣的特殊路由,或使用屬性。
任何想法都非常受歡迎。 謝謝。
在RouteConfig文件中,驗證您是否設置了'routes.MapMvcAttributeRoutes();'。 –
我通過「config.MapHttpAttributeRoutes();」 - 路線工作,這不是問題。 – MacGyver