ASP.NET Web API可以在与MVC相同的URL上工作吗?

Pol*_*Pol 7 .net rest asp.net-mvc asp.net-mvc-4 asp.net-web-api

我可以为返回HTML的ASP.NET MVC请求和返回JSON的ASP.NET Web API提供相同的URL吗?

我在示例中看到这样的路由:"api/{id}"但是我可以摆脱这api/部分在MVC(而不是Web API)中使用此地址吗?

一方面,这应该是可能的,因为我们有内容谈判.但是这样我需要两条具有相同地址的路由,所以这没有意义,对吧?

换句话说:我可以拥有ControllerApiController使用相同的网址吗?或者我ApiController也应该用于HTML?

Tom*_*son 5

如前面的答案中所述,你不能做这样的事情,我真的不明白为什么你想要做那样的事情.

但是我不同意你应该在一个项目中坚持一件事,如果你想要一个干净的API然后我会去webapi并使用MVC来托管我的页面,那时我会把API放在一个单独的文件夹加上单独的路线.

  • @ Rick.Anderson-at-Microsoft.com,我不是说你应该把它们放在单独的项目中,这取决于api和网站的大小.如果它是一个小应用程序,我认为你可以在同一个项目中同时拥有API和站点,如果可能的话,只需在一个区域中使用api即可将它们分开. (2认同)