簡體   English   中英

HttpContext.Response.WriteAsync("<h1> 你好世界</h1> ") onGet 處理程序方法在 asp.net 核心 6 webapp 中拋出異常

[英]HttpContext.Response.WriteAsync("<h1>hello world</h1>") onGet handler method throw Exception in asp.net core 6 webapp

HttpContext.Response.WriteAsync(<h1>hello world</h1>") onGet handler method throws Exception in asp.net core 6 webapp
  1. 在asp.net 6中創建asp.net核心web app
  2. 使用以下代碼更新 Index.cshtml.cs 文件的“OnGet”處理程序方法
     HttpContext.Response.WriteAsync("<h1>hello world</h1>")
  1. 運行應用程序並觀察控制台 window 是否有錯誤。
Code Details
-------------
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace ResponserWrite.Pages
{
    public class IndexModel : PageModel
    {
        private readonly ILogger<IndexModel> _logger;

        public IndexModel(ILogger<IndexModel> logger)
        {
            _logger = logger;
        }

        public void OnGet()
        {
            HttpContext.Response.WriteAsync("<h1>hello world</h1>");
        }
    }
}

錯誤詳情:

失敗:Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1] 執行請求時發生未處理的異常。 System.InvalidOperationException:標頭是只讀的,響應已經開始。

您似乎誤解了Razor 頁應用程序的工作原理。 實際響應是由框架使用您的 model ( Something.cshtml.cs ) 和“視圖”/“頁面”( Something.cshtml ) 生成的。 在 model 的相應方法中,您需要加載/管理所需的數據,並在頁面文件中通過修改 output html 來更改其表示。

如果您嘗試手動編寫響應,當框架也嘗試啟動響應時,會導致上述異常。

如果您想將一些 html 添加到索引頁面 - 只需打開Index.cshtml並將其添加到某處。

閱讀更多:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM