ASP.NET C#でECサイトのヘッダーとフッターを再利用する方法がわからない
解決したいこと
大学の課題でECサイトを作っています。ASP.NET C#を使っていますが、ヘッダーとフッターを再利用する方法がわからず、製品詳細ページごとに毎回コピーしています。他のページでも同じ問題があって、既存のコードを呼び出す方法を知りたいです。ASP.NETの基本的な仕組み(例えばMVCやRazor Pages)についても初心者なので、簡単に教えていただけると助かります!
発生している問題・エラー
特にエラーメッセージは出ていませんが、毎回ヘッダーとフッターをコピーするのは非効率で、更新が必要なときに全ページを修正するのが大変です。ASP.NETでレイアウトを共有する方法がわからないです。
該当するソースコード
// 例: ProductsController.cs
using Microsoft.AspNetCore.Mvc;
namespace ECSite.Controllers
{
public class ProductsController : Controller
{
public IActionResult Details(int id)
{
return View();
}
}
}
// 例: Views/Shared/_Layout.cshtml
<!DOCTYPE html>
<html>
<head>
<title>@ViewData["Title"] - ECサイト</title>
</head>
<body>
<header>
<h1>ECサイト</h1>
<nav>
<a asp-controller="Home" asp-action="Index">ホーム</a>
<a asp-controller="Products" asp-action="Index">製品一覧</a>
</nav>
</header>
@RenderBody()
<footer>
<p>© 2025 ECサイト</p>
</footer>
</body>
</html>
// 例: Views/Products/Details.cshtml
@{
Layout = null; // テスト中
}
<!DOCTYPE html>
<html>
<head>
<title>製品詳細</title>
</head>
<body>
<header>
<h1>ECサイト</h1>
<nav>
<a href="/">ホーム</a>
<a href="/products">製品一覧</a>
</nav>
</header>
<main>
<h2>製品の詳細</h2>
</main>
<footer>
<p>© 2025 ECサイト</p>
</footer>
</body>
</html>
自分で試したこと
MVCテンプレートでプロジェクトを作ってみましたが、_Layout.cshtmlの使い方がわからず、ビューごとにヘッダーとフッターをコピーしています。_ViewStart.cshtmlでレイアウトを指定してみましたが、反映されなかったりエラーが出たりしました。ASP.NETの基本(MVCやサーバーサイドの仕組み)がまだ理解できておらず、困っています。どうすればよいでしょうか?