729 Stimmen

RedirectToAction mit Parameter

Ich habe eine Aktion, die ich von einem Anker aus so nenne, Site/Controller/Action/ID donde ID ist ein int .

Später muss ich von einem Controller aus auf dieselbe Aktion umleiten.

Gibt es eine clevere Möglichkeit, dies zu tun? Derzeit lagere ich ID in tempdata, aber wenn Sie f5 drücken, um die Seite erneut zu aktualisieren, sind die tempdata verschwunden und die Seite stürzt ab.

1174voto

Kurt Schindler Punkte 20747

Sie können die ID als Teil des routeValues-Parameters der Methode RedirectToAction() übergeben.

return RedirectToAction("Action", new { id = 99 });

Dies führt zu einer Umleitung zu Site/Controller/Action/99. N

213voto

Eric Brown - Cal Punkte 13532

Kurts Antwort sollte nach meinen Recherchen richtig sein, aber als ich es ausprobierte, musste ich dies tun, damit es bei mir tatsächlich funktionierte:

return RedirectToAction( "Main", new RouteValueDictionary( 
    new { controller = controllerName, action = "Main", Id = Id } ) );

Wenn ich den Controller und die Aktion nicht in der RouteValueDictionary Es hat nicht funktioniert.

Auch bei dieser Codierung scheint der erste Parameter (Action) ignoriert zu werden. Wenn Sie also nur den Controller im Dict angeben und erwarten, dass der erste Parameter die Action angibt, funktioniert es auch nicht.

Wenn Sie später kommen, versuchen Sie zuerst Kurts Antwort, und wenn Sie immer noch Probleme haben, versuchen Sie diese.

78voto

CF5 Punkte 964

Es ist auch erwähnenswert, dass Sie mehr als einen Parameter übergeben können. id wird verwendet, um einen Teil der URL zu bilden, und alle anderen werden als Parameter nach einem ? in der URL übergeben und werden als Standard UrlEncoded.

z.B..

return RedirectToAction("ACTION", "CONTROLLER", new {
           id = 99, otherParam = "Something", anotherParam = "OtherStuff" 
       });

Die Url würde also lauten:

    /CONTROLLER/ACTION/99?otherParam=Something&anotherParam=OtherStuff

Diese können dann von Ihrem Controller referenziert werden:

public ActionResult ACTION(string id, string otherParam, string anotherParam) {
   // Your code
          }

74voto

kavitha Reddy Punkte 3203

RedirectToAction mit Parameter:

return RedirectToAction("Action","controller", new {@id=id});

47voto

Thivan Mydeen Punkte 1201
//How to use RedirectToAction in MVC

return RedirectToAction("actionName", "ControllerName", routevalue);

Beispiel

return RedirectToAction("Index", "Home", new { id = 2});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X