ビューは、ユーザーにデータを表示する責任を持ちます。ビューは通常、モデルからデータを受け取り、それを適切に表示するためのテンプレートやHTMLコードを生成します。通常、ビューは1つのモデルに基づいてデータを表示しますが、場合によっては2つのモデルを同時に使用する必要があります。
2つのモデルを使用するビューを作成するには、次の手順を実行することができます。
取得したデータをビューに渡すために、ビューモデル(ViewModel)を作成します。ビューモデルは、ビューが必要なデータのみを保持するためのモデルです。例えば、UserモデルとPostモデルの一部のプロパティを持つ新しいクラスを作成します。
public class MyViewModel
{
public User User { get; set; }
public List<Post> Posts { get; set; }
}
- コントローラからビューモデルを作成し、必要なデータを設定します。
public ActionResult MyView()
{
User user = userRepository.GetUser();
List<Post> posts = postRepository.GetPostsByUser(user.Id);
MyViewModel viewModel = new MyViewModel
{
User = user,
Posts = posts
};
return View(viewModel);
}
- ビューでは、受け取ったビューモデルのプロパティを使用してデータを表示します。
@model MyViewModel
<h1>@Model.User.Name</h1>
@foreach (var post in Model.Posts)
{
<div>@post.Title</div>
<p>@post.Content</p>
}
上記のコード例では、ビューモデルを使用してUserモデルとPostモデルのデータをビューに渡しています。ビューでは、@model
ディレクティブでビューモデルの型を宣言し、@Model
を使用してプロパティにアクセスします。
これにより、2つのモデルのデータを同時に表示するビューが作成されます。必要に応じて、ビューモデルに追加のプロパティやメソッドを追加することもできます。
以上が、MVCで2つのモデルを使用するビューを作成する方法の簡単な例です。この方法を使って、自分のアプリケーションに適応してみてください。