Bitte Ich muss geführt werden, um eine Standardaktion für meine Controller zu setzen, so dass, wenn keine Aktion in einem Controller angezeigt wird, die Anwendung an die Indexaktion auf dem gegebenen Controller weitergeleitet wird. Wenn beispielsweise jemand zum Dashboard navigiert/ohne die Aktion anzuzeigen, führt die Anwendung automatisch die Indexaktion des Dashboard-Controllers aus.ASP.NET MVC Set default controller action
Das folgende zeigt meine Versuche, aber es funktioniert immer noch nicht.
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 = "Account", action = "Login", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Regular",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Login", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "ControllerDefault",
url: "{controller}",
defaults: new { action = "Index"}
);
}
}
werde ich jede Führung schätzen
Zuerst überprüft MVC Routing die Routen in der Reihenfolge, in der sie hinzugefügt werden. Die ersten beiden Routen in Ihrem Code haben genau die gleiche Konfiguration, so dass die Route "Regular" niemals erreicht wird und auch nicht die dritte, die in den obigen Routen enthalten ist. Ich schlage vor, dass wenn Sie auf eine Login-Seite umleiten möchten, wenn jemand auf Ihre Website eingibt, tun Sie es von einem Authentifizierungsfilter, und verwenden Sie das Routing nicht, da es nicht der Zweck ist. – Balde
Mein Problem ist nicht das Setzen eines Standard-Controllers. Es stellt vielmehr eine Standardmethode für jeden Controller ein. Ich möchte die Indexmethode in einem beliebigen Controller aufrufen, wenn keine Methode angegeben ist. Das ist, was ich suche – Josh
Verwenden Sie dann die Standardroute, die MVC-Vorlage bietet. Michael Berezin hat es in seiner Antwort gepostet. – Balde