我是ASP.NET 5和中间件类的新手。我想创建的是一个读取传入URL请求的中间件类。基于此,我要么让它通过并执行正常的路径查找,要么我希望我的中间件类从我的Web API类调用特定的控制器/操作。来自定制中间件的呼叫控制器和操作
我现在拥有的是以下内容。我认为代码中的评论解释了我试图达到的目标。
public class RouteMiddleware
{
private readonly RequestDelegate _next;
public RouteMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext httpContext)
{
if(httpContext.Request.QueryString.Value == "test")
{
// Call custom Controller/Action
// Then, don't do any more route resolving, since we already have the right controller/action
}
else
{
// Continue like normal
await _next.Invoke(httpContext);
}
}
}
我该如何在我的中间件类中做到这一点?
为什么不让路由引擎它的工作让它请求路由到您想要使用控制器属性的路由? –
@HenkMollema主要用于学习目的。我只想知道如何从中间件动态创建路由。当我想从另一个汇编/类库中加载控制器时可以派上用场。就像拥有自己的中间件和控制器类的类库一样。 – Vivendi
你可以创建一个重定向响应。 –