首页 新闻 会员 周边

ASP.NET Core 3.0 中如何在 Middleware 中执行一个 Controller Action

0
悬赏园豆:50 [已解决问题] 解决于 2019-05-18 17:54

想在 ASP.NET Core 3.0 中调用 Microsoft.AspNetCore.Diagnostics 的 UseStatusCodePages 扩展方法实现显示自定义错误页面

public static IApplicationBuilder UseStatusCodePages(this IApplicationBuilder app, Action<IApplicationBuilder> configuration);

所以需要在中间件中执行 Controller Action ,请问如何实现?

dudu的主页 dudu | 高人七级 | 园豆:31003
提问于:2019-05-16 15:01

MVC 源码中执行 Action 的代码在 MvcRouteHandler 的 RouteAsync 方法中

dudu 4年前

创建 ControllerActionDescriptor 的代码在 ControllerActionDescriptorBuilder.cs

dudu 4年前
< >
分享
最佳答案
0
dudu | 高人七级 |园豆:31003 | 2019-05-18 17:54
其他回答(2)
0
 public static IApplicationBuilder UseStatusCodePages(this IApplicationBuilder app, Action<IApplicationBuilder> configuration, int statusCode)
        {
            var builder = app.New();
            configuration(builder);
            var tangent = builder.Build();
            return UseStatusCodePages(app, context => tangent(context.HttpContext), statusCode);
        }

这个吗?

收获园豆:20
BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2019-05-16 17:41

不是这个

支持(0) 反对(0) dudu | 园豆:31003 (高人七级) | 2019-05-16 17:50
0

controllerfactory拿到你要的那个controller 在execute你要走的action,兴许可以。

收获园豆:30
czd890 | 园豆:14412 (专家六级) | 2019-05-16 18:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册