在 MVC 5 Webapi 项目中,我正在尝试使用URL' api / controllerName'通过jquery执行GET请求。 Web应用程序托管在默认网站下,网站的根目录是" localhost / myApp"。
路线' api / controllerName'被翻译成' localhost / api / controllerName'而不是' localhost / myApp / api / controllerName'投掷 404未找到错误。
这必须对IIS 8.5和MVC 5路由做一些事情,因为:
我的Global.asax.cs的RegisterRoutes方法如下所示
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
答案 0 :(得分:1)
我想出来了。显然,IIS 7.5在裸路由'api / controllerName'上运行良好,但是IIS 8.5需要使用@ Url.RouteURL实用程序创建的完全限定路由,RouteName为“DefaultApi”。
我用
替换了网址'@Url.RouteUrl("DefaultApi", new { httproute = "", controller = "controllerName"})'
它就像一个魅力(在IIS 7.5和IIS 8.5上)。