如何为ASP.NET MVC 4和ASP.NET Web API实现单独的项目

lmt*_*tag 6 javascript asp.net-mvc jquery asp.net-web-api

我正在开发一个大型ASP.NET MVC/Web API项目,并希望将控制器分离到他们自己的项目中(如本文所述http://msdn.microsoft.com/en-us/magazine/jj190803. aspx).不同之处在于我需要分离ASP.NET Web API控制器,而不是"普通"MVC控制器.

在我的解决方案中,我有两个独立的项目:

  • 一个用于提供HTML/CSS/JavaScript的ASP.NET MVC 4项目(注意我没有使用任何标准的MVC控制器,这个项目是所有客户端/浏览器端代码,它们对Web API进行jQuery/Ajax调用)
  • 一个ASP.NET Web API项目(这个项目只有ApiController,没有视图,HTML等,我仍然希望Web API项目在IIS中托管,而不是自托管)

无论如何,我已经看过其他帖子,这些并没有真正解释我的确切情况,而且我无法使这个解决方案正常工作.

如何将我的Web API控制器分解到他们自己的单独项目中,并在我单独的MVC项目中使用我的HTML/JavaScript代码?而且,如何从单独的MVC项目中的JavaScript/jQuery代码调用API的端点?

谢谢.

VJA*_*JAI 1

由于您的 Web Api 和 MVC 位于不同的项目中,并且它们可能会在不同的域中运行,因此由于跨域问题,客户端的通信变得不那么困难。

虽然您可以尝试 JSONP 或 CORS,但它们不会有多大用处(一个是 hack,另一个在浏览器中没有得到广泛支持),因此您必须在 MVC 项目中创建与 Web 通信的包装器 MVC 控制器通过HttpClient类 API。

您的 javascript 将调用您的 MVC 控制器,这样您就可以避免跨域问题。