C# 如何从.NETCore3.1中的中间件返回razor视图
我们有一个名为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的所有信息 端点受到身份验证的保护,因此不担心安全性,这些都是内部APIC# 如何从.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方法,并且它看起来与相同的方法不同 这不是重复的。我相信这个问题中提到的解决方案在被接受的时候是有效的,但从今天起
开发例外的实施页面:
它使用
看
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);