【发布时间】:2019-03-29 05:40:55
【问题描述】:
我希望我的 FilesController 可以从 /files/{action} 和 /api/files/{action} 访问。我试过了
routes.MapRoute(
name: "Files",
url: "api/Files/{action}/{id}",
defaults: new { controller = "Files", id = UrlParameter.Optional }
);
但它不起作用。我删除了 WebApiConfig,所以在 App_Start 中只有 MVC RouteConfig,但它没有帮助。
更新
控制器代码
public class FilesController : Controller {
public ActionResult Index() {
return new HttpStatusCodeResult(System.Net.HttpStatusCode.OK);
}
}
请求网址:
/files/index -> 好的 (200)
/api/files/index -> 未找到 (404)
更新 #2
完成RouteConfig.cs
public class RouteConfig {
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 }
);
routes.MapRoute(
name: "FilesRoute",
url: "Files/{action}/{id}",
defaults: new { controller = "Files", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Files",
url: "api/Files/{action}/{id}",
defaults: new { controller = "Files", id = UrlParameter.Optional }
);
}
}
【问题讨论】:
标签: c# asp.net asp.net-mvc api routes