. NET Пользовательское промежуточное ПО для отображения веб-страницы / формы - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь выяснить, как я могу создать свое собственное промежуточное программное обеспечение, предоставить форму или веб-страницу.

Он должен использоваться как HangFire или NSwager и работать для. NET Core WebApp и WebApi проектов:

app.UseHangfireDashboard();
app.UseSwaggerUi3();

Так что в моем случае я хотел бы использовать его следующим образом:

app.UseMyDashboard();

Что нужно сделать:

  1. Укажите конечную точку (/ myDashboard)
  2. Эта страница содержит простую форму
  3. Отправить сформировать и выполнить некоторый код

Как мне сделать что-то подобное? Нужно ли для этого создать отдельный проект? Потому что я хочу использовать это в любых других проектах, то есть хочу упаковать это в пакет NuGet и сделать его доступным для внутреннего использования.

1 Ответ

1 голос
/ 28 апреля 2020

Я предоставлю вам краткий ответ, для начала вы можете go просмотреть документацию https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-3.1 для detais. Чтобы вызвать app.UseMyDashboard(); из класса запуска, вам нужно создать метод расширения:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
namespace YourNamespace
{
    public static class MiddleWareExtension
    {
        public static void UseMyDashboard(this IApplicationBuilder app)
        {
            // 1. Provide an endpoint(/ myDashboard)
            app.Map("/myDashboard", app =>
                app.Run(async (context) =>
                {
                    //2. This page contains a simple form, Submit the form to redirect to another form
                    await context.Response.WriteAsync("<button onclick=\"window.location.href = '/path'; \">Click me</button>");
                }));
            //3. Another Form
            app.Map("/path", app =>
                app.Run(async (context) => await context.Response.WriteAsync("<b>New Form</b>")));
        }
    }
}
...