在使用C#&.Net Core(.NET 6, .NET 7)进行ASP.NET Core MVC应用程序开发中,中间件是一个处理传入HTTP请求并生成传出HTTP响应的组件。默认情况下,中间件不能直接返回MVC视图。
但根据不同业务场景的需要,有时候需要在中间件(Middleware)中直接返回指定的某个视图,应该如何实现呢?
类似效果如下图:
Rector
2023-02-10 提问
在ASP.NET Core MVC应用程序中,为了从中间件返回视图,可以使用MVC框架。
要实现这一点,需要在中间件中使用IActionResultExecutor的服务实例来构建MVC请求管道。以下是一个代码示例:
IActionResultExecutor
在程序入口文件Program.cs中启用这个中间件:
这个示例的中间件功能是:如果请求参数中包含error并且此参数值不为空,那么请求返回一个错误视图(~/Views/Home/Error.cshtml)的内容,否则请求进入下一个请求处理管道。
error
~/Views/Home/Error.cshtml
以下是运行效果:
2023-02-10 回答
码龄: 3105天
专注.NET/.NET Core