Domanda

Questo è il mio percorso:

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

Il pensiero è che si può fare qualcosa di simile:

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

Ed essere in grado di modificare prodotto sullo scaffale 14 23. Controllo con percorso Debugger , il percorso corrisponde al percorso, ma quando provo a navigare con rotta Debugger fuori, mi mostra un errore HTTP 404. Qualcuno sa perché questo sta accadendo?

È stato utile?

Soluzione

Beh, per cominciare, che ID1 = "" la linea sta per essere problematico, perché non si può fare qualcosa di opzionale che non è alla fine.

Ho appena provato sul mio sistema, e funziona bene.

Questo è il percorso:

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

Questo è il controller:

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

Ho provato URL del tipo:

http: // localhost: 14314 / mensole / 23 / prodotti / list / 14
http: // localhost: 14314 / ripiani / 23 / prodotti

E hanno funzionato bene.

Quando si è tentato l'URL con "modifica" in esso, ti sei ricordato di fare un'azione Modifica? Se non c'è Modifica azione, si otterrà un 404.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top