将模型转换为视图模型
我有一个表名称“产品”和另一个表名称“类别”。 产品表有“productID”、“productName”和“CategoryID”。 类别表有“categoryID”和“categoryName”。
我的目标是显示带有类别的产品列表。该列表将包含“产品 ID”、“产品名称”和“类别名称”。
我创建了一个视图模型。代码
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);
我将如何编写我的控制器代码以便它与视图模型匹配?
I have a table name "Product" and another table name "category".
Product table has 'productID', 'productName' and 'CategoryID'.
Category table has 'categoryID' and 'categoryName'.
My target is to display a list of products with category. The list will contain 'product id', 'product name' and 'category name'.
I have created a viewmodel. the code is
public int prodID{get;set;}
public int prodName{get;set;}
public int catName{get;set;}
In my controller, I have:
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);
How would I write my controller code so that it matches with the viewmodel??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 AutoMapper 而不是从数据库模型重写属性。
You can use AutoMapper instead of rewriting properties from db model.
也许您会直接使用视图模型类:
Maybe you will use your view model class directly:
prodName
和catName
应该是字符串吗?另外,为什么不这样做:
Should
prodName
andcatName
be strings?Also, why not just do this: