Asp.net mvc 4 Web Api和MVC控制器-相同的存储库,不同的输出

Asp.net mvc 4 Web Api和MVC控制器-相同的存储库,不同的输出,asp.net-mvc-4,dependency-injection,Asp.net Mvc 4,Dependency Injection,以前从没见过这个。我在应用程序中同时使用web api和mvc控制器 我对这两个控制器都使用Structuremap MVC4依赖项注入,效果很好 使用相同的存储库,当我从MVC控制器获取一个产品时,结果为NULL,但是从WebAPI控制器调用相同的产品时,结果是正确的产品 两者都使用相同的DbContext在存储库中使用相同的方法 这是MVC控制器的操作: public ActionResult ShowProduct(int id) { var product = _

以前从没见过这个。我在应用程序中同时使用web api和mvc控制器

我对这两个控制器都使用Structuremap MVC4依赖项注入,效果很好

使用相同的存储库,当我从MVC控制器获取一个产品时,结果为NULL,但是从WebAPI控制器调用相同的产品时,结果是正确的产品

两者都使用相同的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
        }
    }

你知道为什么会这样吗?

嗯,我几乎不敢说出这是什么原因

这两个控制器存在于各自的web项目中,而带有MVC控制器的项目缺少web.config中的connectionstring。。。嗯


我想我需要一些睡眠….

确定id中的值正确吗?是的,值正确,并且项目在数据库中。