小编Mac*_*ver的帖子

使用路由属性时设置web api路由处理程序

我有一个自定义路由处理程序,我想在不同的控制器上使用.现在我让控制器使用这个路由处理程序的唯一方法就是设置它

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,如果新的开发人员应该增加一个控制器,他们可以只使用像"/自定义"一种特殊的路由或使用属性.

任何想法都非常受欢迎.谢谢.

c# asp.net-web-api

11
推荐指数
1
解决办法
1690
查看次数

如何在LINQ中循环集合并传递数据

我如何在LINQ中执行此操作 - 所以我不必使用ForEach或循环?

我似乎无法弄清楚如何在满足某些条件时传递列表,这样就可以使用LINQ循环集合.

products.ForEach(delegate(CustomEcomProducts p)
{                            
  p.VariantProducts = variants.Where(prod => prod.VariantParentID == p.ProductID)
                        .ToList();
});
Run Code Online (Sandbox Code Playgroud)

.net c# linq lambda

3
推荐指数
1
解决办法
151
查看次数

标签 统计

c# ×2

.net ×1

asp.net-web-api ×1

lambda ×1

linq ×1