ASP.NET Tips #001 - ASP.NET Core でルーティングによって動的に生成される URL の末尾にスラッシュを追加する

ASP.NET Core MVC では、タグヘルパーを使用する事で href を自動で生成する事ができます。

~/Views/Shared/_Layout.cshtml
<ul class="navbar-nav flex-grow-1">
	<li class="nav-item">
		<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
	</li>
	<li class="nav-item">
		<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
	</li>
</ul>

実行時にルーティングによって生成されるURLは href="/Home/Privacy" となります。この URL を href="/Home/Privacy/" と末尾にスラッシュを追加したい場合は、 Startup.cs の ConfigureServices() 内で AddRouting() のオプションで AppendTrailingSlash を true に設定します。

~/Startup.cs
namespace AspNetTips.MvcSite
{
	public class Startup
	{
		public Startup(IConfiguration configuration)
		{
			Configuration = configuration;
		}

		public IConfiguration Configuration { get; }

		public void ConfigureServices(IServiceCollection services)
		{
			services.AddRouting(options => {
				// ルーティングによって動的に生成されるURLの末尾にスラッシュを追加する
				options.AppendTrailingSlash = true;
			});

			services.AddControllersWithViews();
		}

		public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
		{
			// 省略...
		}
	}
}
試作環境
  • Windows 10 (20H2)
  • Visual Studio 2019 (v16.8.3)
  • .NET SDK 5.0.101
  • ASP.NET Core 5.0 / MVC