如何将model-view-controller模式中的模型转化为viewModel?
- 内容介绍
- 文章标签
- 相关推荐
本文共计428个文字,预计阅读时间需要2分钟。
在将业务模型转换为视图模型时,可以考虑以下步骤:
1. 明确需求:确定需要展示的数据和视图结构。
2.数据映射:将业务模型中的数据字段映射到视图模型中。
3.优化结构:根据视图需求调整数据结构,使其更易于理解和展示。
例如,对于Product和Category这两个表,可以按照以下方式设计视图模型:
- 视图模型名:`ProductCategoryView`
- 包含字段: - `productID`:产品ID - `productName`:产品名称 - `categoryName`:类别名称具体实现如下:
sqlSELECT p.productID, p.productName, c.categoryNameFROM Product pJOIN Category c ON p.CategoryID=c.categoryID;
参见英文答案 > Where to convert business model to view model?2个我有一个表名“Product”和另一个表名“category”.
产品表有’productID’,’productName’和’CategoryID’.
类别表有’categoryID’和’categoryName’.
我的目标是显示带有类别的产品列表.该列表将包含“产品ID”,“产品名称”和“类别名称”.
我创建了一个viewmodel.代码是
public int prodID{get;set;} public int prodName{get;set;} public int catName{get;set;}
在我的控制器中,我有:
var query= from p in dc.Product select new {p.ProductID,p.ProductName,p.Category1.CategoryName }; var prod = new ProductIndexViewModel() { ProductList=query //this line is problematic !!it says an explicit conversion exists.... }; return View(prod);
我如何编写我的控制器代码,以便它与viewmodel匹配?
也许你会直接使用你的视图模型类:var query = from p in dc.Product select new ProductIndexViewModel() { prodID = p.ProductID, prodName = p.ProductName, catName = p.Category1.CategoryName }; List<ProductIndexViewModel> productForView = query.ToList();
本文共计428个文字,预计阅读时间需要2分钟。
在将业务模型转换为视图模型时,可以考虑以下步骤:
1. 明确需求:确定需要展示的数据和视图结构。
2.数据映射:将业务模型中的数据字段映射到视图模型中。
3.优化结构:根据视图需求调整数据结构,使其更易于理解和展示。
例如,对于Product和Category这两个表,可以按照以下方式设计视图模型:
- 视图模型名:`ProductCategoryView`
- 包含字段: - `productID`:产品ID - `productName`:产品名称 - `categoryName`:类别名称具体实现如下:
sqlSELECT p.productID, p.productName, c.categoryNameFROM Product pJOIN Category c ON p.CategoryID=c.categoryID;
参见英文答案 > Where to convert business model to view model?2个我有一个表名“Product”和另一个表名“category”.
产品表有’productID’,’productName’和’CategoryID’.
类别表有’categoryID’和’categoryName’.
我的目标是显示带有类别的产品列表.该列表将包含“产品ID”,“产品名称”和“类别名称”.
我创建了一个viewmodel.代码是
public int prodID{get;set;} public int prodName{get;set;} public int catName{get;set;}
在我的控制器中,我有:
var query= from p in dc.Product select new {p.ProductID,p.ProductName,p.Category1.CategoryName }; var prod = new ProductIndexViewModel() { ProductList=query //this line is problematic !!it says an explicit conversion exists.... }; return View(prod);
我如何编写我的控制器代码,以便它与viewmodel匹配?
也许你会直接使用你的视图模型类:var query = from p in dc.Product select new ProductIndexViewModel() { prodID = p.ProductID, prodName = p.ProductName, catName = p.Category1.CategoryName }; List<ProductIndexViewModel> productForView = query.ToList();

