所以我对Web API是全新的,我想我会开始一个测试项目来学习它和AngularJS以及它们如何很好地协同工作......等等.
我在我的解决方案中创建了一个多层架构,在我的TPlan.API
项目中,我有以下配置的路由Global.asax
GlobalConfiguration.Configuration.Routes.Add("default", new HttpRoute("api/{controller}"));
TPlan.WEB
是我的MVC应用程序,它被设置为"启动项目".当我运行它时,我希望能够:
mysite的:端口/ API /测试
并从我的测试控制器中获取API的值.
但是它对我不起作用,我得到以下结果:
没有找到与请求URI"mysite:port/api/test"匹配的HTTP资源.
spaceman.. 5
呃,在visual studio中,右键单击解决方案并转到属性.转到启动并选择"多个项目"选项并勾选网站和Web服务以启动.
这将启动他们两个.但正如已经指出的那样,它们运行在不同的端口上,它们是完全独立的应用程序......我认为你不能注册属于网站之外的路由.
我们这样工作
View => POST/GET => MVC Controller => HTTP Request => API Controller
所以我们的mvc视图发布或者到我们的mvc控制器,然后我们发起一个单独的http请求到web api.这是服务器到服务器的调用,就像调用任何外部Web服务一样.我们等待来自api的响应,然后返回视图所需的任何内容......