簡體   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