[英]Web api project routing trouble
我有一个简单的Web API项目(ASP.NET MVC)。 我需要将项目部署在IIS的子文件夹中。 例如,我有站点http://TestSite
/,并且需要将项目部署到http://TestSite/MyProject/
。 当我这样做时,Web API路由停止工作。 因为我的ajax调用被路由到主站点http://TestSite/api/something/get
。
我试图以以下方式更新地图路由:
routeTemplate: "MyProject/api/{controller}/{id}",
但这并没有影响我想要的。 我做错了什么,在哪里可以了解ASP.NET MVC中Web API控制路由的一些做法?
这很简单。 我不需要对路由做任何事情。 我只需要更改JavaScript中的url。
从:
$.getJSON('/api/Category', function (data) {
至:
$.getJSON('api/Category', function (data) {
只需删除“ api”前的“ /”符号即可。 意识到。
顺便说一句,关于调试ASP.NET Web API的不错的文章- 使用Route Debugger调试ASP.NET Web API
编辑:忘记我之前写的(而不是BTW部分)。 这行不通。 它适用于http://TestSite/MyProject/
但不适用于http://TestSite/MyProject/MyController/Index
。 我过去的ASP.NET MVC项目遇到了此类问题。 我通过开始使用Url帮助程序解决了它,例如: @Url.Action("MyAction","MyController")
。 所以我需要Web Api之类的东西。 我找到了。 它是UrlHelper.HttpRouteUrl方法。 现在,我的代码将以以下方式显示:
$.getJSON( "@Url.HttpRouteUrl("DefaultApi",new {controller = "Category"})", function (data) {
哪里:
该解决方案看起来并不优雅,但可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.