RazorPages でHTTPレスポンスヘッダに独自の値を追加する - ASP.NET Core

RazorPages でHTTPレスポンスヘッダに独自の値を追加するコードを紹介します。

概要

RazorPages でHTTPレスポンスヘッダに値を追加する場合はOnGet() メソッド内で、Response オブジェクトのHeader オブジェクトに値を追加します。

プログラム例

コード

以下のコードを記述します。
CustomResponseHeader.cshtml
@page
@model ResponseHeaderDemo.Pages.CustomResponseHeaderModel
@{
}
<html>
<head>
  <title>テストページ</title>
</head>
<body>
  <p>レスポンスヘッダに値を追加するテスト</p>
</body>
</html>
CustomResponseHeader.cshtml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace ResponseHeaderDemo.Pages
{
    public class CustomResponseHeaderModel : PageModel
    {
        public void OnGet()
        {
          Response.Headers.Add("iPentec-Flag","Penguin");
        }
    }
}
startup.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace ResponseHeaderDemo
{
  public class Startup
  {
    // This method gets called by the runtime. Use this method to add services to the container.
    // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(IServiceCollection services)
    {
      services.AddRazorPages();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
      if (env.IsDevelopment()) {
        app.UseDeveloperExceptionPage();
      }

      app.UseRouting();

      app.UseEndpoints(endpoints =>
      {
        endpoints.MapRazorPages();
      });
    }
  }
}

解説

Startup.cs ファイルではRazorPagesのルーティングの設定をしています。詳しくはこちらの記事を参照してください。

Razor Page のページモデルクラスにOnGetメソッドを実装しています。
OnGetメソッド内でResponse オブジェクトのHeaders オブジェクトのAddメソッドを呼び出して、ヘッダオブジェクトに値を追加します。 Addメソッドの第一引数が追加するヘッダの名前、第二引数がヘッダの値になります。
  public void OnGet()
  {
    Response.Headers.Add("iPentec-Flag","Penguin");
  }

実行結果

上記のプロジェクトを実行します。実行後 (アプリケーションルート)/CustomResponseHeader のURLにアクセスします。 下図のページが表示されます。


[F12]キーを押すか、メニューの[その他ツール]の[開発者ツール]を選択して開発者るツールのウィンドウを表示します。
上部のタブから[Network]のタブをクリックして選択します。下図の画面が表示されますので、左側の枠の[CustomResponseHeader]の項目をクリックして選択します。 右側にレスポンスヘッダと、リクエストヘッダの値が表示されます。


[Response Headers]の項目の中に、コードで追加した "ipentec-flag" のヘッダ項目が表示されています。 またヘッダの値もコードで記述した "Penguin" の値が設定されていることも確認できます。


レスポンスヘッダの値に独自の項目を追加できました。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2021-05-04
作成日: 2021-05-04
iPentec all rights reserverd.