c# – 找不到另一个ASP.Net WebAPI路由
发布时间:2020-12-15 08:42:36 所属栏目:百科 来源:网络整理
导读:首先我读了很多关于这个主题的文章,并安装了几个“路由调试”插件.我对 Java / Spring比较熟悉,所以我真的不知道如何调试这个东西,使用vs 2012.(我无论如何都不能让IISExpress打印任何调试,而不是我习惯使用Spring / Tomcat的那种调试输出.) public class Ro
首先我读了很多关于这个主题的文章,并安装了几个“路由调试”插件.我对
Java / Spring比较熟悉,所以我真的不知道如何调试这个东西,使用vs 2012.(我无论如何都不能让IISExpress打印任何调试,而不是我习惯使用Spring / Tomcat的那种调试输出.)
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 = "Legal",action = "Index",id = UrlParameter.Optional } ); } } 现在,我可以通过默认控制器点击索引页面.但是,我试图基于以下控制器点击URL / WebApi / Metadata /: [BreezeController] public class WebApiController : ApiController { private readonly EFContextProvider<BankruptcyDbContext> _contextProvider = new EFContextProvider<BankruptcyDbContext>(); [HttpGet] public string Metadata() { return _contextProvider.Metadata(); } } “Route Debugger”表示我对/ WebApi / Metadata,/ WebApi / Metadata /,/ WebApi / Metadata / 0等的请求应该“匹配”,但我得到的只是404. Edit1:我终于找到了跟踪日志并获得了更多细节: The controller for path &#39;/WebApi/Metadata&#39; was not found or does not implement IController 解决方法
确保您使用的是当前最新版本的Visual Studio 2012和Update 2等.
你不仅应该在App_Start中有一个RouteConfig.cs文件,而且还有一个WebApiConfig.cs文件 因此,虽然普通MVC路由使用RouteConfig类 public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default",defaults: new { controller = "Home",id = UrlParameter.Optional } ); } } Web API正在使用WebApiConfig,它与上面静态类WebApiConfig中建议的开箱即用代码一起被删除: public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "DefaultApi",routeTemplate: "api/{controller}/{id}",defaults: new { id = RouteParameter.Optional } ); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |