微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 .net core 3.1

如何解决如何从 .net core 3.1

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

我的问题: ErrorPage.Designer.cs 是如何从 ErrorPage.cshtml 生成的? 我想为我的 .cshtml 页面做同样的事情。

到目前为止我尝试过的:我查看了 RazorGenerator 但它生成的视图与我在 github 源代码中看到的视图不同。准确地说,生成文件中不存在 ExecuteAsync 方法,并且对于相同的 ErrorPage.Designer.cs,它看起来与 ErrorPage.cshtml 不同。

这不是 aspnetcore: how to return a view from middleware 的副本。我确信这个问题中提到的解决方案在被接受时是有效的,但截至今天,答案中的所有链接都已断开,并且答案中提到的 RazorGenerator 也发生了很大变化。

更新: 明确地说,我不想在中间件中覆盖或实现异常处理。我想从 Web API 返回一个用于诊断目的的 UI 页面,该页面将在我们生态系统中的所有 Web API 中使用。我看到 DeveloperExceptionPageMiddleware 是关于如何在不引用“View()”的情况下从 Web API 返回 razor 页面的灵感,并且只是想了解他们是如何做到的。这里缺少的部分是如何从 .cshtml 生成 Designer.cs,这就是我想知道的。

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

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

Implementation for DevelopmentExceptionPage: 它使用 ErrorPage.Designer.cs 返回一个 html 见https://github.com/aspnet/Diagnostics/blob/master/src/Microsoft.AspNetCore.Diagnostics/DeveloperExceptionPage/DeveloperExceptionPageMiddleware.cs#L197

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);

ErrorPage 类存在于从 ErrorPage.Designer.cs 生成ErrorPage.cshtml 中。

因此将模型传递给一个类,然后将响应写入流中。 你能告诉我如何从“x.cshtml”创建“x.Designer.cs”吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。