.NET自定义中间件以显示网页/表单
我正试图找出如何创建自己的中间件,以提供表单或网页 它应该像HangFire或NSwager一样可用,并且应该适用于.NET核心WebApp和WebApi项目:.NET自定义中间件以显示网页/表单,.net,asp.net-core,asp.net-web-api,middleware,.net,Asp.net Core,Asp.net Web Api,Middleware,我正试图找出如何创建自己的中间件,以提供表单或网页 它应该像HangFire或NSwager一样可用,并且应该适用于.NET核心WebApp和WebApi项目: app.UseHangfireDashboard(); app.UseSwaggerUi3(); 因此,在我的情况下,我想使用它如下: app.UseMyDashboard(); 它需要做的是: 提供端点(/myDashboard) 此页面包含一个简单的表单 提交表单并执行一些代码 我怎么做那样的事?我需要为此创建单独的项目吗?因为
app.UseHangfireDashboard();
app.UseSwaggerUi3();
因此,在我的情况下,我想使用它如下:
app.UseMyDashboard();
它需要做的是:
我怎么做那样的事?我需要为此创建单独的项目吗?因为我想在任何其他项目中重复使用它,这意味着我想将它打包成一个NuGet包,供内部使用。我将为您提供一个简短的答案,您可以浏览文档 为了细节。调用
app.UseMyDashboard()代码>从startup类,您需要创建一个扩展方法:
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>")));
}
}
}
使用Microsoft.AspNetCore.Builder;
使用Microsoft.AspNetCore.Http;
名称空间YourNamespace
{
公共静态类MiddleWareExtension
{
公共静态void UseMyDashboard(此IApplicationBuilder应用程序)
{
//1.提供端点(/myDashboard)
app.Map(“/myDashboard”,app=>
app.Run(异步(上下文)=>
{
//2.此页面包含一个简单表单,提交表单以重定向到其他表单
wait context.Response.WriteAsync(“单击我”);
}));
//3.另一种形式
app.Map(“/path”,app=>
运行(异步(上下文)=>wait-context.Response.WriteAsync(“新表单”));
}
}
}
是否可以将HTML放在一个文件和一个单独的项目中?