繁体   English   中英

ASP.NET 核心 Razor 页面:将 html 内容写入新的浏览器选项卡?

[英]ASP.NET Core Razor Page: Write html content to new browser tab?

使用HttpClient ,我发出一个返回 html 响应的 GET 请求。

在方法处理程序中对 url 的请求:

var response = string.Empty;
var result = await _httpClient.CreateClient().GetAsync(newUrl);
if (result.IsSuccessStatusCode)
{
  response = await result.Content.ReadAsStringAsync();
  var bytesResponse = Encoding.ASCII.GetBytes(response)

  // How to open bytesResponse in a new browser tab?

}

来自请求的 Html 响应内容:

<!DOCTYPE html>
<html lang="en">
  <head>
    <style>
    </style>
  </head>
  <body>

      <!-- body content -->

    <script>
    </script>
  </body>
</html>

尝试添加await Response.Body.WriteAsync(bytesResponse, 0, bytesResponse.Length); 将抛出System.ObjectDisposedException: IFeatureCollection has been disposed. 例外

希望获得有关如何在新的浏览器选项卡中显示响应的帮助。

首先,如果你想打开一个新的浏览器标签,它不能在 razor 处理程序中完成。它需要在视图中完成。你需要用“_blank”属性装饰你的链接,如下所示:

<a asp-page-handler="xxxxx" target="_blank">link</a>

这是一个演示:

测试.cshtml:

<a asp-page-handler="Html" target="_blank">link</a>

test.cshtml.cs:

public IActionResult OnGet()
        {
            return Page();
        }
public ActionResult OnGetHtml()
        {
            return base.Content("<div>Hello</div>", "text/html");
        }

结果: 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM