我有一个自定义路由处理程序,我想在不同的控制器上使用.现在我让控制器使用这个路由处理程序的唯一方法就是设置它
RouteTable.Routes.MapHttpRoute(
name: "CustomRouteHandler",
routeTemplate: "/custom/{controller}/{action}",
defaults: new { id = RouteParameter.Optional, action = RouteParameter.Optional }
).RouteHandler = new CustomRouteHandler();
Run Code Online (Sandbox Code Playgroud)
我真的想使用像这样的路由属性
[HttpGet]
[Route(Name = "GetCart")]
public Cart Get()
{
return _repository.Get();
}
Run Code Online (Sandbox Code Playgroud)
但是,当我使用路由属性时,似乎无法弄清楚如何确保我使用自定义路由处理程序.优选我只会使用路由属性,所以如果我可以使用像"RouteHandler"这样的属性,这里指向我的"CustomRouteHandler",这将是完美的.
是否有一个属性,我可以使用这样我也可以以某种方式指向一个MapHttpRoute万事成"/自定义",然后使用从这里路由属性,使所有控制器都具有自定义处理程序?
另一种选择可能是使我自己的属性,使控制器或方法使用我的自定义路由处理程序?
我试图做一个真正的晶莹剔透的方式为开发者看到,这个控制器或方法是使用自定义routehandler,如果新的开发人员应该增加一个控制器,他们可以只使用像"/自定义"一种特殊的路由或使用属性.
任何想法都非常受欢迎.谢谢.
我如何在LINQ中执行此操作 - 所以我不必使用ForEach或循环?
我似乎无法弄清楚如何在满足某些条件时传递列表,这样就可以使用LINQ循环集合.
products.ForEach(delegate(CustomEcomProducts p)
{
p.VariantProducts = variants.Where(prod => prod.VariantParentID == p.ProductID)
.ToList();
});
Run Code Online (Sandbox Code Playgroud)