【发布时间】:2014-06-01 20:26:52
【问题描述】:
我目前正在开发一个 MVC 4 项目,我需要将数据库访问权限授予移动应用程序,因此我选择在 Web Api 中实现我的 Web 服务以获取 Json 结果。 问题是我有很多代码冗余! MVC 控制器和 Web Api 控制器中存在相同的代码。
例如get过程:
1- web api 控制器:
public User GetUser(int id)
{
User user = db.Users.Find(id);
if (user == null)
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
}
return user;
}
2-MVC 控制器
public ActionResult Details(int id = 0)
{
User user = db.Users.Find(id);
if (user == null)
{
return HttpNotFound();
}
return View(user);
}
一个在 JSon 中返回 User 实体,另一个返回一个视图! 那么如何在另一个控制器中使用一个控制器来摆脱冗余呢?
【问题讨论】:
-
真正的问题应该是,您是直接在 Controller 中访问 dbContext 还是通过 web api?这完全是您的决定。
-
我需要 MVC 控制器来处理我的视图和 Web api 控制器来为移动端提供数据访问希望是另一个开发人员的工作。 @ManishMishra
-
我在这里没有看到任何问题,它们是两个独立的实体,应该保持这种状态。如果您确实想停止代码重复,那么您可以做的一件事是更新您的普通控制器以调用您的 API 服务,但这完全是您的调用
-
是的,这就是我的问题,我如何在我的控制器中调用 API servir
-
或者将您的数据访问代码放在存储库类中,并在 MVC 控制器和 WebApi 控制器中使用该类
标签: asp.net asp.net-mvc json asp.net-mvc-4 asp.net-web-api