Zunächst einmal habe ich so viele Artikel gelesen, wie ich zu diesem Thema finden kann und mehrere "Route Debug" -Plugins installiert. Ich bin vertrauter mit Java/Spring, so dass ich wirklich keine Ahnung habe, wie man dieses Ding debuggt, mit vs 2012. (Ich kann sowieso nicht, dass IISExpress jedes Debugging druckt, viel weniger die Art der Debugausgabe, die ich mit Spring/Tomcat gewohnt bin .)Noch eine andere ASP.Net WebAPI Route nicht gefunden
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 }
);
}
}
Jetzt kann ich die Index-Seite über den Standard-Controller treffen. Aber ich versuche, die URL/WebAPI/Metadata/basiert auf den folgenden Controller zu treffen:
[BreezeController]
public class WebApiController : ApiController {
private readonly EFContextProvider<BankruptcyDbContext> _contextProvider =
new EFContextProvider<BankruptcyDbContext>();
[HttpGet]
public string Metadata() {
return _contextProvider.Metadata();
}
}
Die "Route Debugger" sagt, dass meine Wünsche für/WebAPI/Metadaten/WebAPI/Metadata /,/WebAPI/Metadaten/0, und mehr „passen“ sollte aber alles, was ich bekommen ist 404.
Edit1: ich habe ein wenig mehr Details endlich die Trace-Protokolle gefunden und bekam:
The controller for path &#39;/WebApi/Metadata&#39; was not found or does not implement IController
http://www.breezejs.com/ –
Awesome, das funktioniert! Ich wusste nicht, dass MapRoute und MapHttpRoute unterschiedlich sind. –
@BrockNoland Willkommen in der verwirrenden Welt von ASP.NET Web API vs ASP.NET MVC. Zwei völlig unterschiedliche Frameworks, die zusammen verpackt und extrem ähnlich aussehen, um die Lernkurve zu erleichtern. –