2016-04-20 2 views
0

Ich habe mich nur gefragt, ob jemand mich in die richtige Richtung zeigen kann. Hier ist mein Problem:So erstellen Sie root-Routen ohne Anzeige des Controllernamens in Verbindung

Ich habe einen Controller in Controller-Ordner Events genannt, und da habe ich einige ActonResult Methoden Index, Suchen, Details, die Ansichten von der

Ansicht/Events/Index, Suche zurückgibt, Details

und einige Teilansichten von freigegebenen Ordner.

Nun, was wird der beste Weg sein, diese Ansichten ohne Controller Namen anzuzeigen. domain.com .../Events/Index oder localhost | | Meine Indexansicht jetzt als

localhost angezeigt domain.com .../Event/Details/1

und ich wan‘ t angezeigt werden als

localhost | domain.com ... oder localhost | domain.com .../Details/1

Nun, ich bin gespannt, ob diese Änderungen keine Auswirkungen haben für meine AJA X Anrufe, die sind:

nur ein Teil einer js Code

@Url.Action("index", "Events"),

und

url: "@Url.Content("~/Events/MyAjaxSearch")", data: "searchString=test&Location=test",

ich auch einige params in meinem Index-Methode für pageNum haben (dies ist für unendlich Seitennummerierung).

Bellow ist mein RouteConfig Code:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

routes.MapRoute("Events", "", new { controller = "Events", action = "Index" }); 
     routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Events", action = "Index", id = UrlParameter.Optional }); 

Grüße!

Antwort

1

Try this:

routes.MapRoute(
     name: "EventDetails", 
     url: "Details/{id}", 
     defaults: new { controller = "Events", action = "Details", id = UrlParameter.Optional } 
    ); 
+1

Sollte es nicht sein 'action = "Details"' in den Standardeinstellungen? –

+0

Danke, es hat sich geändert –

+0

Vielen Dank! Es funktioniert, und auch Ajax. Jetzt eine kleine Frage. Wie wäre es, wenn ich nur die Domain aufschreibe ... Sagen wir mal test.azurewebsites.net und das wird auch die Indexansicht anzeigen. –

Verwandte Themen