Sto utilizzando il routing degli attributi da ASP.NET 5 RC, incluso nella versione RC di Visual Studio 2013.Percorso predefinito per il percorso principale utilizzando l'instradamento dell'attributo asp.net
Mi piacerebbe che il percorso radice, /
, conduca al percorso canonico /Home/Index
, ma non riesco a trovare un modo per farlo con solo attributo percorsi. È possibile, e se no, come lo farei se sto usando OWIN SelfHost? In altre parole, sto impostando manualmente la mia classe HttpConfiguration
nel metodo WebApp.Start<T>
(dove T
ha un metodo Configure(IAppBuilder)
richiamato all'avvio) e non passando attraverso l'oggetto RouteTable.Routes
. O dovrei passare attraverso l'oggetto RouteTable.Routes
? Non ho avuto molta fortuna con che quando ho provato ...
EDIT: Ecco quello che ho provato finora:
// normal Web API attribute routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultWeb",
routeTemplate: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index" }
);
al secondo tentativo di sotto sembra un po 'dubbia, dato che non è chiaro come il mio HttpConfiguration
oggetto è legato alla statica RouteTable.Routes
oggetto:
// normal Web API attribute routes
config.MapHttpAttributeRoutes();
RouteTable.Routes.MapRoute(
name: "DefaultWeb",
url: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index" }
);
ho ottenuto "La richiesta attuale è ambiguo tra i seguenti metodi di azione: ..." quando si tenta questo. Ho aggiunto [RoutePrefix ("home")] alla definizione del mio controller e ho cambiato [Route] in [Route ("index")] per rimuovere l'ambiguità. Sia/(default) che/home/index ora funzionano. –
Ho anche ricevuto l'errore ambiguo e l'ambiguità puntava allo stesso controller. Ho rimosso il "[Percorso]" mostrato sopra e ora funziona. – HK1