首页 / 问答 / C#&.Net Core如何在中间件中返回ViewResult视图呢?

C#&.Net Core如何在中间件中返回ViewResult视图呢?

.NET C# ASP.NET Core .NET 5 中间件 2.52K 次浏览
0

此问题来自知乎-《.Net core如何在中间件中返回视图?》

如题,看网上的处理方法很多都是直接在代码里写死HTML然后直接返回,请问有什么其它的处理方法吗?可以采用类似Action中执行ViewResult的方法吗?

类似如下的效果:

回复 [×]
提交评论
请输入评论内容

2 个回答

  • 0

    回答是:肯定的

    在ASP.NET Core应用程序中,可以在中间件返回类似Action中的ViewResult视图,并且可以自定义视图中的参数,视图模型等等。

    1.首先创建一个中间件

    DemoMiddleware.cs

    2.创建HttpContext的静态扩展方法WriteResultAsync

    HttpContextExtensions.cs

    3.创建app.Use*的静态扩展方法

    DemoMiddlewareExtension.cs

    4.在Startup.cs启动文件中注册中间件,如图:

    5.创建视图模型

    WarningViewModel.cs

    6.在视图文件夹~/Views/Shared/中添加自定义的视图文件Warning.cshtml并编码示例代码,如下:

    运行示例项目,并在浏览器中访问在址:http://localhost:25299/?q=warning

    效果如下图:

    Rector的个人主页

    Rector

    2021-10-14 回答

    • 0

      还有一种方案是在ASP.NET Core中间件中使用重定向,如下:

      Rector的个人主页

      Rector

      2021-10-14 回答

      我来回答