RazorPages でHTTPレスポンスヘッダに独自の値を追加するコードを紹介します。
概要
RazorPages でHTTPレスポンスヘッダに値を追加する場合はOnGet() メソッド内で、Response オブジェクトのHeader オブジェクトに値を追加します。
プログラム例
コード
以下のコードを記述します。
@page
@model ResponseHeaderDemo.Pages.CustomResponseHeaderModel
@{
}
<html>
<head>
<title>テストページ</title>
</head>
<body>
<p>レスポンスヘッダに値を追加するテスト</p>
</body>
</html>
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");
}
}
}
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