如何在同一个MVC视图中显示两个模型

use*_*888 0 c# asp.net-mvc asp.net-mvc-4

我有一个存储mycustomer新请求信息的模型.在另一个历史模型中,我存储了客户的所有先前请求.在视图中我想接受新的订单,并看到他以前的订单,并在看到他以前的订单后提出一些食物.

这是我的模特......

    public class CustomerFoodModel
    {
    public DateTime FoodRequestCreated { get; set; }
    public string FoodRequestType { get; set; }
    ...
    ...
    }

    public class CustomerHistoryModel
    {
    public string Name { get; set; }
    public DateTime FoodRequestCreated { get; set; }
    public string FoodRequestType { get; set; }
    ...
    ...
    }
Run Code Online (Sandbox Code Playgroud)

Helper.cs文件

    public static CustomerFoodModel getCustomerDetails(int id) // id is loyalty card number
     {
        // get details from (cutomer) sql table

        //store it in (CustomerFoodModel)

        // check if it has previous orders
         getCustomerHistoryDetails(id);
        ....


     }

     public static CustomerHistoryModel getCustomerHistoryDetails(int id)
     {
     // get deails from (history) sql table
     // store it in (CustomerHistoryModel
     }
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我将我的(CustomerFoodModel)传递给视图.

      public ActionResult EditCustomerRequest(int id, string name, string date)
    {
        CustomerFoodModel CRequest =  Helper.getCustomerDetails(id);
        ...

        return PartialView("EditCustomerRequest",CRequest);

        }
Run Code Online (Sandbox Code Playgroud)

如何在同一视图中显示(CustomerHistoryModel).是否可以在(CustomerFoodModel)中包含(CustomerHistoryModel)?

Mar*_*ino 6

创建一个新类来包装两个模型.

public class CustomerFoodModel
{
   public CustomerFoodModel CustomerFood { get; set; }
   public CustomerHistoryModel CustomerHistory { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在你的控制器上

public ActionResult EditCustomerRequest(int id, string name, string date)
{
    CustomerFoodModel CRequest =  Helper.getCustomerDetails(id);
    CustomerHistoryModel CHModel = Helper. getCustomerHistoryDetails(id);
    return PartialView("EditCustomerRequest",new CustomerFoodModel(){
         CustomerFood = CRequest,
         CustomerHistory = CHModel
    });

}
Run Code Online (Sandbox Code Playgroud)