0
我们正在从web api迁移到asp .net mvc核心,我在web api中有一个动作选择器,其中如果存在URL“$”符号的任何我们用来调用特定方法在控制器中。 低于这个功能,我们在网页API使用ApiControllerActionSelector实现了代码来执行的Web API相同 -ApiControllerActionSelector等效于Asp .net MVC核心
public override HttpActionDescriptor SelectAction(HttpControllerContext controllerContext) {
string urlDecode = HttpUtility.UrlDecode(
controllerContext.Request.RequestUri.ToString());
if (urlDecode != null && urlDecode.Contains("$")) {
if (controllerContext.Request.Method == HttpMethod.Post) {
MethodInfo method = controllerContext.ControllerDescriptor.ControllerType
.GetMethod(
"PostCustomOperation");
return
new ReflectedHttpActionDescriptor(
controllerContext.ControllerDescriptor, method);
}
if (controllerContext.Request.Method == HttpMethod.Get) {
MethodInfo method = controllerContext.ControllerDescriptor.ControllerType
.GetMethod(
"GetCustomOperation");
return
new ReflectedHttpActionDescriptor(
controllerContext.ControllerDescriptor, method);
}
}
HttpActionDescriptor result = base.SelectAction(controllerContext);
return result;
}
我无法找到一个等价方式的ASP.NET MVC的核心做同样的,我想实现IRouter,但我们必须指定控制器,但这并不是我所知道的。 任何有关如何实现相同或不可能在Asp.net MVC核心中做的建议?