まず、このトピックに関する記事をできるだけ多く読み、いくつかの「ルート デバッグ」プラグインをインストールしました。私はJava/Springに精通しているので、vs 2012を使用してこのことをデバッグする方法が本当にわかりません. .)
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 }
);
}
}
これで、デフォルトのコントローラーを介して Index ページにアクセスできるようになりました。ただし、次のコントローラーに基づいて 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