ASP.NET MVC routing due parametri con stringa statica tra
-
21-09-2019 - |
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?
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.