C# 如何从.NETCore3.1中的中间件返回razor视图

C# 如何从.NETCore3.1中的中间件返回razor视图,c#,asp.net,asp.net-core,razor-pages,razorengine,C#,Asp.net,Asp.net Core,Razor Pages,Razorengine,我们有一个名为DeveloperExceptionPageMiddleware的中间件扩展,它返回一个razor视图。根据github上的源代码,它返回一个使用预编译源代码的页面 我的问题:是如何生成的? 我想对我的.cshtml页面做同样的事情 到目前为止我所尝试的:我查看了它,但它生成的视图与我在github源代码中看到的不同。确切地说,生成的文件中不存在ExecuteAsync方法,并且它看起来与相同的方法不同 这不是重复的。我相信这个问题中提到的解决方案在被接受的时候是有效的,但从今天起

我们有一个名为DeveloperExceptionPageMiddleware的中间件扩展,它返回一个razor视图。根据github上的源代码,它返回一个使用预编译源代码的页面

我的问题:是如何生成的? 我想对我的.cshtml页面做同样的事情

到目前为止我所尝试的:我查看了它,但它生成的视图与我在github源代码中看到的不同。确切地说,生成的文件中不存在ExecuteAsync方法,并且它看起来与相同的方法不同

这不是重复的。我相信这个问题中提到的解决方案在被接受的时候是有效的,但从今天起答案中的所有链接都被破坏了,答案中提到的RazorGenerator也发生了很大的变化

更新: 我只是想说清楚,我不想在中间件中重写或实现异常处理。我想从Web API返回一个UI页面,用于诊断目的,该页面将在我们生态系统中的所有Web API中使用。我看到developerCeptionPageMiddleware启发了我如何从Web API返回razor页面而不引用“View()”,我只想了解他们是如何做到的。这里缺少的部分是如何从.cshtml生成Designer.cs,这就是我想要知道的

例如: https://{host}/deployedlibs=>提供已部署库的所有信息 https://{host}/settings=>提供appSetting.json的所有信息

端点受到身份验证的保护,因此不担心安全性,这些都是内部API

开发例外的实施页面:
它使用 看

ErrorPage类存在,在其中生成

所以模型被传递到一个类中,然后响应被写入流中。 您能告诉我如何从“x.cshtml”创建“x.Designer.cs”吗?

var model = new ErrorPageModel
            {
                Options = _options,
                ErrorDetails = _exceptionDetailsProvider.GetDetails(ex),
                Query = request.Query,
                Cookies = request.Cookies,
                Headers = request.Headers
            };

            var errorPage = new ErrorPage(model);
            return errorPage.ExecuteAsync(context);