2013-10-15 78 views
0

我正在创建一个asp.net mvc4应用程序,它会根据用户输入的特定条件向用户提出一组问题。每个问题都存储在一个表格中,只有那些符合条件的问题才会显示给最终用户。正确的设计技巧

我正在使用一个viewmodel,它结合了来自两个不同表格的信息。基本上它有一个问题清单和一个检查编号,将所有检测结合在一起。我的问题是什么是填充视图模型的正确的oo设计技术。

填充viewmodel的方法/方法是否应该存在于viewmodel类本身中?基本上将实体传递给viewmodel并允许它自己填充。

是否应该在实体中发送一个新类并返回viewmodel?

或者有更好的方法来做到这一点。

回答

2

是的,你的方法是有效的。

考虑在模型下面的例子:

public List<Questions> Questions 
{ 
get { 
    QuestionRepository Rep = new QuestionRepository(); 
    return Rep.ObtainQuestions(ClientAge,ClientType) 
    } 
} 

public int ClientAge { get; set; } 
public ClientTypeEnum ClientType { get; set; } 

的问题属性的getter包括所有的逻辑。只要clientAge和ClientType属性具有有效值,问题列表将被填充。这样可以避免必须在需要填充属性的每个操作方法中设置数据。

在这个例子中,我从存储库中获取数据,但是您可以从ORM(如实体框架)或任何其他源获取数据。

你可以谷歌术语骨感控制器和阅读更多关于推荐和最佳实践。