【问题标题】:Web Api and MVC controller - same repository, different outputWeb Api 和 MVC 控制器 - 相同的存储库,不同的输出
【发布时间】: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


【解决方案1】:

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

这两个控制器存在于各自的 Web 项目中,而带有 MVC 控制器的项目在 web.config 中缺少连接字符串... DUH...

我觉得我需要睡一觉.....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    相关资源
    最近更新 更多