【发布时间】:2014-02-27 02:43:01
【问题描述】:
以前从未见过。我在我的应用程序中同时使用 web api 和 mvc 控制器。
我对两个控制器都使用了 Structuremap MVC4 依赖注入,效果很好。
使用相同的存储库,当我从 MVC 控制器获取产品时,结果为 NULL,但从 Web Api 控制器调用相同的产品,结果是正确的产品。
两者都在存储库中使用相同的方法,使用相同的 DbContext。
这是 MVC 控制器动作:
public ActionResult ShowProduct(int id)
{
var product = _repo.GetProduct(id);//product is null
return View();
}
这是 Web Api 方法:
public Product Get(int id)
{
var product = _repo.GetProduct(id);//Returns correct product
return product;
}
这是两个控制器使用的存储库方法:
public Product GetProduct(int id)
{
using (var db = new ProductContext())
{
var product = db.ProductDb.Include(a => a.Orders).FirstOrDefault(c => c.Id == id);
return product; //Call from MVC controller returns NULL
}
}
你知道为什么会这样吗?
【问题讨论】:
-
确定您的 id 值正确吗?
-
是的,数值正确,该项目在数据库中。
标签: asp.net-mvc-4 dependency-injection