Ich verwende ASP.Net MVC. Hier ist mein Code-Schnipsel aus einem Controller mit dem Namen Course:URL.Action enthält ID beim Erstellen der URL
public ActionResult List(int id)
{
var viewmodel.ShowUrl = Url.Action("Show", "Course");
...
}
public ActionResult Show(int id)
{
...
}
viewmodel.ShowUrl aufgreift, was auch immer der Wert der Parameter „ID“ ist. So wird viewmodel.ShowUrl zu "/ Course/Show/151" (Wert der ID ist 151); Ich möchte den ID-Teil auf dem Client basierend auf Benutzerinteraktion festlegen können. Ich möchte, dass der Wert von viewmodel.ShowUrl "/ Course/Show" lautet.
Das scheint wie ein Fehler für mich. Ich werde Url.Action nicht mitteilen, einen ID-Wert anzugeben. Es macht es alleine. Wenn ich die ID-Wert einstellen wollen, dann würde ich so etwas tun:
var viewmodel.ShowUrl = Url.Action("Show", "Course", new {id = somevalue});
Also, wie Sie MVC verhindern, dass das Hinzufügen der ID-Wert? Ich kann viewmodel.ShowUrl zu "/ Course/Show" fest codieren, aber das scheint eine kludgy Lösung zu sein. Vielen Dank.
Ich kann nicht genau remeber zu lösen, aber die 'Routedata' ist auf' ViewData' und das ist, warum es passiert ist. Ich denke, Sie können 'Url.Action (" Show "," Course ", new {});' oder leeren Sie das 'RouteData' auf' ViewData' Objekt. –