在MVC控制器中使用Web Api

时间:2014-03-12 17:06:47

标签: asp.net-mvc asp.net-web-api

是否可以在MVC控制器中使用/调用我的Web API方法? 我有一个Web Api用于移动和其他平台,我正在开发一个.NET Mvc网站。 这种架构有意义吗?

由于

2 个答案:

答案 0 :(得分:2)

是的,但是如果您希望从许多不同的客户端使用您的API,我建议您将API创建为单独的应用程序,然后可以相应地进行管理/扩展。

基本上你指的是"狗食"您自己的API,使您自己的Web应用程序与任何其他客户端没有区别。

我们做了类似的事情,并让我们的MVC应用程序调用我们的API(使用HttpClient)。我们在同一个应用程序中也有很多客户端代码,它们使用CORS直接调用API。

我们已经将这种架构在生产中运行了2年,现在没有任何问题。

答案 1 :(得分:1)

以下是我如何从MVC控制器调用我的Web API控制器:

public class invoiceController : ApiController
    {
        private myEntities db = new db1Entities();

        // GET api/invoices
        public IQueryable<invoices> Getinvoices()
        {
            return db.invoices;
        }
}

在单独的MVC控制器中:

public ActionResult ShowInvoices()
{
  var webApi = new invoicesController();
  //this must return strongly typed object
  var myarray = webApi.Getinvoices(); 
  return View(myarray);
}