Prima di tutto ho letto tutti gli articoli che riesco a trovare su questo argomento e ho installato diversi plugin "route debug". Ho più familiarità con Java/Spring quindi non ho idea di come eseguire il debug di questa cosa, utilizzando vs 2012. (Non riesco comunque a fare in modo che IISExpress stampi qualsiasi debug molto meno il tipo di output di debug a cui sono abituato con Spring/Tomcat .)Ancora un'altra route WebAPI ASP.Net non trovata
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 }
);
}
}
Ora, sono in grado di premere la pagina Indice tramite il controller predefinito. Comunque, sto cercando di colpire l'URL/WebAPI/Metadati/in base alla seguente controller:
[BreezeController]
public class WebApiController : ApiController {
private readonly EFContextProvider<BankruptcyDbContext> _contextProvider =
new EFContextProvider<BankruptcyDbContext>();
[HttpGet]
public string Metadata() {
return _contextProvider.Metadata();
}
}
La "Strada Debugger" dice che le mie richieste per/WebAPI/metadati,/WebAPI/Metadati /,/WebAPI/Metadati/0, e più dovrebbe "match", ma tutto quello che ottiene è 404.
Edit1: ho finalmente trovato i registri di traccia e ottenuto un po 'più in dettaglio:
The controller for path &#39;/WebApi/Metadata&#39; was not found or does not implement IController
http://www.breezejs.com/ –
impressionante, che ha funzionato! Non sapevo che ci fosse un diverso tra mapRoute e MapHttpRoute. –
@BrockNoland Benvenuti nel mondo confuso di ASP.NET Web API vs ASP.NET MVC. Due framework completamente diversi, confezionati insieme e fatti sembrare estremamente simili "per facilitare la curva di apprendimento". –