Asp.net web api 如何将Web API与MVC 5分离

Asp.net web api 如何将Web API与MVC 5分离,asp.net-web-api,asp.net-mvc-5,Asp.net Web Api,Asp.net Mvc 5,我有几个MVC项目,我不想以RESTful的方式使用我的控制器。我希望控制器调用一个单独的REST服务。此服务是独立的,因为我们将构建不仅可以由MVC web客户端使用,而且可以由其他移动设备使用的HTTP服务 我创建了几个单独的MVC5项目和一个WebAPI项目 我的问题是,我正在使用ajax调用来填充视图。ajax请求是否应该调用我的MVC控制器,然后让我的MVC控制器通过webclient/httpclient调用Web Api?或者我应该绕过MVC控制器直接向WebAPI控制器发出aja

我有几个MVC项目,我不想以RESTful的方式使用我的控制器。我希望控制器调用一个单独的REST服务。此服务是独立的,因为我们将构建不仅可以由MVC web客户端使用,而且可以由其他移动设备使用的HTTP服务

我创建了几个单独的MVC5项目和一个WebAPI项目

我的问题是,我正在使用ajax调用来填充视图。ajax请求是否应该调用我的MVC控制器,然后让我的MVC控制器通过webclient/httpclient调用Web Api?或者我应该绕过MVC控制器直接向WebAPI控制器发出ajax请求吗

2最重要的是,如果99%的请求都是AJAX请求,我是否应该使用MVC5项目?我不是返回视图,只是返回数据。我应该只使用常规的ASP.net页面并对Web API服务进行Ajax调用吗?或者可以这样使用.net MVC吗?

我的2美分:

我认为,最好通过客户端ajax请求直接调用WebAPI服务来获取数据

您可以跳过asp.net和asp.net mvc 5项目,创建asp.net web api空项目,并在其中添加html页面

我建议使用单页应用程序结构/设计。以下示例项目在这方面可能会有所帮助


但我希望我的Web API与其他项目分开,以便移动设备和任何其他第三方客户端都可以使用它。@tdw您已经完成了多少开发?如果您将现有的api控制器重新分解/移动到新的web api项目,并且此结构将允许您将web api逻辑与asp.net mvc项目分离,该怎么办。此外,如果你从零开始,以上提出的解决方案应该可以很好地发挥作用。最后,考虑到你的描述和我对它的理解,我回答了。请纠正我,如果我误解了,并进一步解释。我有一个web api控制器作为一个web api项目。我有几个使用web api的MVC项目。你建议我做的是创建一个asp.net web api并向其中添加html页面,但我们有移动应用程序和第三方供应商需要使用我们的web api。这就是为什么我想让它独立。好的,不管我们上面讨论的解决方案结构如何,您都可以调用web api REST api端点。唯一的问题是确保CORS已启用。我建议使用html页面,因为使用razor或aspx视图引擎似乎没有任何好处。另外,根据上面的描述,您只是从服务器返回数据,我得出结论,为什么不使用单页应用程序,然后使用html页面呢。希望能有帮助。