【问题标题】:Use .NET Core MVC Project as a middleware使用 .NET Core MVC 项目作为中间件
【发布时间】:2020-05-08 13:07:57
【问题描述】:

我有一个 .NET Core MVC 应用程序,它提供了一个仪表板来表示统计信息等。

我想将此 MVC 应用程序用作中间件,以便可以像使用 Hangfire、NSwag 等一样使用它。

所以在我的主要项目中,我想做以下事情:

  1. 导入我的 NuGet 包(仪表板 MVC 应用程序)
  2. app.UseDashboard(options...)

我的仪表板 MVC 应用程序中已经有一个中间件类,其中包含以下内容:

 public static class JwtDashboardMiddleware
 {
    public static void UseMyDashboard(this IApplicationBuilder app)
    {
        // 1. Provide an endpoint(/ myDashboard)
        app.Map("/myDashboard", app =>
            app.Run(async (context) =>
            {
                string message = "Hello Middleware";
                //2. This page contains a simple form, Submit the form to redirect to another for
                await context.Response.BodyWriter.WriteAsync(Encoding.UTF8.GetBytes(message));
            }));
    }
 }

我还使用仪表板 MVC 应用程序创建了一个 NuGet 包,它正在工作,但在主应用程序和仪表板 MVC 应用程序中,它无法访问视图等。

那么,如何从 Dasboard MVC 应用程序中的中间件访问控制器以及如何将其与其他 MVC 应用程序集成以实现上述要点?

顺便说一句。我也尝试重定向到控制器视图,但视图无法访问?我是否需要编译要包含在 NuGet 包中的视图,或者它是如何工作的?

主要问题是:如何在中间件中使用我的控制器和视图?

【问题讨论】:

    标签: c# .net asp.net-mvc asp.net-core middleware


    【解决方案1】:

    您不能将整个 MVC 应用程序嵌入到一个静态路由中。

    以 NSwag 为例,在 /swagger 端点上,提供一个静态 html 文件,该文件基于 API 本身生成的 swagger.json 文件

    【讨论】:

    猜你喜欢
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 2018-03-29
    相关资源
    最近更新 更多