[英]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.