Frage

Ich lese diesen Artikel darüber, wie Sie Routen in Ruby on Rails Präfix können. Ich möchte in der Lage, die gleiche Sache mit asp.net MVC zu tun

So möchte ich eine Route definieren können, wie:

/photographers/1/photos/2   //photo 2 of photographer with id 1
/photographers/1/photos     //all of photographer with id 1

Irgendwelche Tipps?

EDIT:

"Fotografen / {id} / Fotos / {PhotoID}" - scheint die Arbeit ganz in Ordnung zu tun, aber wie kann ich unterstützen

RedirectToAction<PhotosController>(x => x.Add());

Ich möchte umleiten: / Fotografen / 1 / Fotos / add

War es hilfreich?

Lösung

Definieren Sie Ihre Route wie folgt aus:

routes.MapRoute(
    "Photographers",
    "photographers/{id}/photos/{photoID}",
    new { controller = "Photographers", action = "Photo", photoID = null });

Dann wird Ihr Controller-Aktion wie folgt definieren:

public ActionResult Photo(int id, int? photoID)
{
    // If photoID is not null, show just that photo.
    // Otherwise, show all photographs.
}

Andere Tipps

könnten Sie verwenden regex Routing oder benutzen Platzhalter in Ihrer Routing-Tabelle , so dass die {id *} die /1/photos/2 für den Controller Fotografen Standard entspricht, analysiert die Zeichenfolge, und auf eine geeignete Aktion umleiten.

Schauen Sie auch unter this über verschachtelte Ressourcen stellen.

RouteTable.Routes.Add(
        new Route { Url = "events/[eventId]/tickets/[action]/[id]", 
                    Defaults = new { controller = "Tickets", 
                                     action = "List", id = (string)null }, 
                    RouteHandler = typeof(MvcRouteHandler) });
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top