ASP.NET MVC更适合编写viewModel

时间:2016-02-19 21:15:58

标签: c# asp.net-mvc mvvm

我有下一个模型项目的典型MVC解决方案:

  • Solution.Model
  • Solution.ViewModel

例如 ProductController

public ActionResult Index(int productId)
{
   Model.Product product = context.Products.GetById(productId);
   ViewModel.ProductViewModel productVM = new ProductViewModel();
   productVM.Title =  product.Title;
   ...
}

很明显,控制器不适合构成视图模型 如果有选择,我会看到几个:

  • viewModel的构造函数
  • 通过automaper在控制器中编写
  • 单独加入

什么是最佳做法?

1 个答案:

答案 0 :(得分:1)

  1. 业务模型不应依赖于ViewModel(即填充业务逻辑层中的ViewModel)
  2. ViewModel不应该依赖于业务模型(即在ViewModel的构造函数中填充Model中的ViewModel)
  3. Model和ViewModel应该彼此独立!

    因此,控制器就是“层”来“连接”ViewModel和Model。我建议为此目的使用automapper