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核心中做的建議?