すべての顧客のリストを表示でき、すべての注文のリストを表示できます。これをさらに進めたいと思います。
同じページに2つの部分的なビューを表示して、顧客の詳細とその顧客に関連する注文を表示したいと思います。
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage< MyDemo.Models.CustomerAndOrdersViewModel >" %>
<% Html.RenderPartial("CustomerDetails", this.ViewData.Model.Customer); %>
<% Html.RenderPartial("CustomerOrders", this.ViewData.Model.Order); %>
ビューモデルを作成しました
public class CustomerAndOrdersViewModel
{
public CustomerAndOrdersViewModel(Customer customer,
IEnumerable<Order> orders)
{
this.Customer = customer;
this.Order = orders;
}
public Customer Customer { get; set; }
public IEnumerable<Order> Order { get; set; }
}
そして、私のカスタマーコントローラーで私は定義しました
ICustomerRepository customerRepository;
IOrderRepository orderRepository;
public CustomersController()
: this(new CustomerRepository())
{
}
public CustomersController(ICustomerRepository repository)
{
customerRepository = repository;
}
public CustomersController(IOrderRepository repository)
{
orderRepository = repository;
}
次に、CustomerAndOrdersViewModelを詳細ビューに渡そうとします
public ActionResult Details(int id)
{
QuestionAndOrderViewModel viewdata = new CustomerAndOrdersViewModel(customerRepository.GetCustomer(id),
orderRepository.FindAllOrders());
return View(viewdata);
}
しかし、orderRepositoryに対して「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが表示されます。
どこが間違っているのですか?