Model view controller MVC架构-模式

Model view controller MVC架构-模式,model-view-controller,architecture,repository,design-patterns,Model View Controller,Architecture,Repository,Design Patterns,我需要一些MVC架构方面的帮助。我对名为User的对象使用以下体系结构 UserRepository->IUserRepository->UserService->IUserService->UserController 用户对象来自我的数据库,我正在使用EntityFramework。我有一个函数,返回用户列表Return\u All\u users()。返回的字段之一是“UserType”。这是一个数字,但当我在Index.aspx页面中显示列表时,我希望它显示为字符串。“UserType”

我需要一些MVC架构方面的帮助。我对名为User的对象使用以下体系结构

UserRepository->IUserRepository->UserService->IUserService->UserController

用户对象来自我的数据库,我正在使用EntityFramework。我有一个函数,返回用户列表Return\u All\u users()。返回的字段之一是“UserType”。这是一个数字,但当我在Index.aspx页面中显示列表时,我希望它显示为字符串。“UserType”的数字需要在字典中查找与“Administrator”等数字一起出现的字符串,我希望该字符串显示在我的索引页中

我该怎么做呢?我目前正在使用此功能:

  public IEnumerable<User> Return_All_Users()
{
  //my code here
}
public IEnumerable Return\u All\u Users()
{
//我的代码在这里
}
我在另一篇文章中提出了一个类似的问题,有人建议我的IEnumerable应该返回一个字符串,而不是用户对象。我试过了,但后来我用的是动态模型,我不想这样做。我也不知道如何使用动态模型,所以我想也许有更好的方法

这应该发生在我的用户服务中吗?也许我需要创建一个名为NewUser的新类,并将UserType定义为字符串,然后实例化一个新的NewUser并从User传递值。在传递UserType之前,我会查看字典并获得键的正确值

我应该这样做,还是有更好的方法



在我发布了这个问题之后,我只是想用一个存储过程来实现这一点。可能使用数据库中的存储过程返回数据,而不是直接从数据库表中查找数据

我将创建一个视图模型UserView,该视图的格式表示视图如何最好地使用该数据。您可以在存储库或控制器中执行从用户到用户视图的映射,具体取决于您喜欢在何处进行这种映射。

我正在用谷歌搜索视图模型。我不知道如何做到这一点,但让我看看是否可以按照您的建议来做。视图模型只是一个具有与您需要的信息匹配的属性的类。您提到您有一个在实体上返回的UserType属性。可以使UserView类的UserType属性为字符串而不是整数。在控制器中,您将拥有将用户对象转换为用户视图对象的逻辑。绑定UserView时,UserType属性将是正确的数据类型。我喜欢你的想法。我已经阅读了更多关于它的内容,您应该使用视图模型来显示数据,而不是直接将数据库对象传递给视图。现在有道理了。谢谢你的帮助。