日期:2014-05-17  浏览次数:20449 次

APS.netMVC的ViewModel问题
问题是这样的:

数据库有两个表
表 product
  ID
  Name
  ClassID
  Other

表 Class
  ClassID
  ClassName

定义了ViewModle IEnumerable<product>,在视图用foreach迭代.
例如:
foreach(var p in Model) 
{
  p.Name
  p.ClassID
}
问题就在这里p.ClassID,我现在是用Html.RenderAction调用控制器的方法,实现分类名称的显示.

感觉类似这样关联的记录都要写action调用,挺麻烦,

请问有没有更好的解决方法?
又或者说如何把这些(类似:分类名称)都定义在ViewModel直接输出到视图呢?让视图更简洁

感谢大家的指教了.

------解决方案--------------------
定义一个接口,接口中含有共同的关联属性。。然后写一个ascx ViewModel使用该接口
------解决方案--------------------
1 product下定义Class

2 搜索product的时候搜索出class并匹配

3 view里product.Class.name这样来调用

你用ef4的话,只要直接调用就行

------解决方案--------------------
这不是简单的联合表查询的问题么?你完全可以根据查出来的数据来设计一个你想要的Model(包含ClassName)

其实JS+AJAX局部绑定也可以
------解决方案--------------------
http://topic.csdn.net/u/20111103/12/c2b486c9-f0a2-4569-bc56-43aabb6973d9.html

合理设计你的ViewModel 就可以实现的