2011-05-12 103 views

回答

6

在我看來,viewmodels是特定於任何應用程序將使用它們,而存儲庫將返回所有應用程序通用的模型。所以我認爲視圖模型應該在網站中創建,從存儲庫返回的一個通用模型中創建,而不是將知識庫與佈置如何佈置有關。

+0

如果兩個應用程序可以使用相同的ViewModel會怎樣?你會爲VM創建一個專門的項目嗎? – heltonbiker

3

嚴格地說你的資料庫應該返回域對象

庫:「使用集合類接口,用於訪問域對象的域和數據映射層之間起中介作用」

福勒(POEAA)

0

庫應該是在你的域和UI之間 - 庫應該知道也不關心你的UI層 - 這樣你就可以得到最好的再利用和脫鉤也越好。

1

ViewModels應該在控制器中實例化並傳遞給強類型視圖。通常,ViewModel將包含呈現視圖所需的多種模型類型。這裏有一個簡單的例子:

說你有兩個模型對象訂單和客戶

你想在頁面的頂部和訂單在該客戶的索引視圖網格顯示客戶詳細信息。

public class CustomerModel 
{ 
    //properties 
} 

public class OrderModel 
{ 
    //properties 
} 

public class CustomerVM 
{ 
    public CustomerModel customer { get; set; } 
    public IEnumerable<OrderModel> orders { get; set; } 
} 

//and in your controller 

public class CustomerController : Controller 
{ 
    public ActionResult Index(int id) 
    { 
     CustomerVM vm = new CustomerVM(); 
     vm.customer = CustomerRepository.GetCustomer(id); 
     vm.orders = OrdersRepository.GetOrdersForCustomer(id); 
     return View(vm); 

    } 
} 
相關問題