Asp.net mvc 在MVC控制器中使用Web Api
是否可以在MVC控制器中使用/调用我的Web API方法? 我有一个用于移动和其他平台的Web Api,我正在开发一个.NET Mvc网站。 这种架构有意义吗Asp.net mvc 在MVC控制器中使用Web Api,asp.net-mvc,asp.net-web-api,Asp.net Mvc,Asp.net Web Api,是否可以在MVC控制器中使用/调用我的Web API方法? 我有一个用于移动和其他平台的Web Api,我正在开发一个.NET Mvc网站。 这种架构有意义吗 谢谢是的,这是可能的,不过如果您希望使用来自多个不同客户端的API,我建议您将API创建为一个单独的应用程序,然后可以进行相应的管理/扩展 本质上,您指的是“狗食”您自己的API,使您自己的web应用程序与任何其他客户机没有区别 我们做了类似的事情,让MVC应用程序调用API(使用HttpClient)。在使用CORS直接调用API的同一
谢谢是的,这是可能的,不过如果您希望使用来自多个不同客户端的API,我建议您将API创建为一个单独的应用程序,然后可以进行相应的管理/扩展 本质上,您指的是“狗食”您自己的API,使您自己的web应用程序与任何其他客户机没有区别 我们做了类似的事情,让MVC应用程序调用API(使用
HttpClient
)。在使用CORS直接调用API的同一应用程序中,我们也有很多客户端代码
我们的这种架构已经在生产中运行了两年,没有任何问题。以下是我如何从MVC控制器调用我的Web API控制器:
public class invoiceController : ApiController
{
private myEntities db = new db1Entities();
// GET api/invoices
public IQueryable<invoices> Getinvoices()
{
return db.invoices;
}
}
public ActionResult ShowInvoices()
{
var webApi = new invoicesController();
//this must return strongly typed object
var myarray = webApi.Getinvoices();
return View(myarray);
}
一般来说,有两种方法可以做到这一点:要么使用Javscript从页面本身调用WebAPI方法,要么将这些方法的内部逻辑移动到一个单独的地方,在那里您的MVC控制器和WebAPI都可以随意调用。这不是一种好方法。如果您想在同一应用程序中的MVC和WebAPI之间共享逻辑,请将其移动到单独的类中;不要从MVC调用Web API控制器。