【发布时间】:2014-01-20 20:20:06
【问题描述】:
我是 MVC 和 Web API 的新手。我创建了两个独立的项目。一个 ASP.NET MVC 5 (MyUI) 和其他 ASP.NET Web API 2 (MyApi)。我想将我的 API 项目与我的 UI 层分开。
MVC 项目 (MyUI) 中的 AccountController 类本质上与 API 项目中的 AccountController (MyApi) 所做的相同。我首先考虑让 MyUI.AccountController 成为 MyApi.AccountController 的子类,但后来我很快意识到首先从 Controller 继承,然后从 ApiController 类型继承。
所以我的问题是:
- 为了从 MVC 5 项目中删除数据访问逻辑,我应该 只需将 AccountController 转换为一个包装类,它将 本质上是从 MyApi.AccountController?
- 有更好的方法吗?
编辑:
编辑 2: 在试图阐明问题时,我意识到我做错了。我的困惑来自嵌入在 API 项目中的 ASP.NET Identity 实现。这需要移到数据访问层,并且两个控制器都需要以相同的方式访问它们,这是完全不同的蠕虫罐头:)
谢谢!!
【问题讨论】:
-
data 模型和 view 模型是有区别的。你的 UI 项目应该包含它工作所必需的模型,从你的 WebAPI 提供的数据模型中获取数据。在哪里转换数据取决于您,控制器或视图模型。就个人而言,我将这种转换放在我的视图模型中的公共方法中
-
感谢您的回复。我仍然不清楚我的 MyUI.AccountController 将如何与 MyAPI.AccountController 对话,特别是对于 ASP.NET Identity 例程。
标签: c# asp.net data-access-layer asp.net-mvc-5 separation-of-concerns