Frage

Das ist mein Routing:

routes.MapRoute(null,
    "shelves/{id1}/products/{action}/{id2}",
    new { controller = "Products", action = "List", id1 = "", id2 = ""});

Der Gedanke ist, dass man so etwas tun kann:

http://server/shelves/23/products/edit/14

Und in der Lage zu bearbeiten Produkt 14 auf dem Regal 23. Überprüfen Sie es mit Route Debugger paßt der Weg das Routing, aber wenn ich versuche, es mit der Route Debugger aus zu navigieren, es zeigt mir einen HTTP-Fehler 404. Weiß jemand, warum dies geschieht?

War es hilfreich?

Lösung

Nun, für Vorspeisen, dass id1 = „“ Linie problematisch sein wird, weil Sie nicht etwas optional machen können, die nicht am Ende ist.

Ich habe gerade versucht es auf meinem System, und es funktioniert gut.

Dies ist die Route:

routes.MapRoute(
    "shelf-route",
    "shelves/{id1}/products/{action}/{id2}",
    new { controller = "Products", action = "List", id2 = "" }
);

Dies ist der Controller:

public class ProductsController : Controller
{
    public string List(string id1, string id2)
    {
        return String.Format("ID1 = {0}, ID2 = {1}", id1, id2);
    }
}

Ich habe versucht, URLs wie:

http: // localhost: 14314 / Regale / 23 / products / Liste / 14
http: // localhost: 14314 / Regale / 23 / Produkte

Und sie funktionierte gut.

Wenn Sie die URL mit „Bearbeiten“ in es versuchte, erinnerte Sie eine Edit-Aktion zu machen? Wenn es keine Aktion bearbeiten ist, erhalten Sie einen 404 erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top