2016-03-31 13 views
2

In meinem Razor-Code habe ich den folgenden Aktionslink.Wie wird zu einer anderen Aktion oder Route umgeleitet?

@Html.ActionLink("poof", "Poof", new { Id = Model.Id }) 

Was ich will, geschehen ist, dass die puh Methode aufgerufen wird, aber dann möchte ich den Computer in eine andere Ansicht navigieren - z.B. Zeigen.

public ActionResult Show(Guid id) 
{ 
    return View(...); 
} 

public void Poof(Guid id) 
{ 
    ... 
    RedirectToRoute("Show", new {Id = id}); 
    RedirectToAction("Show", new {Id = id}); 
} 

Ich habe versucht, sowohl RedirectToRoute und RedirectToAction aber in beiden Fällen habe ich auf einem leeren Bildschirm gelandet. Ein genauerer Blick auf die URL zeigte, dass ich bei der .../Poof/... Route stecken bleibe, statt auf .../Show/... geführt werden und ich kann nicht herausfinden wie man auf den passenden Link springt.

Ich folge etwas wie this answer aber seit dem Knickpunkt in anzeigen Aktion getroffen wird auf nicht (auf Umleitung, das ist), fange ich an zu fragen, ob es sinnvoller ist, mit Trassierung zu spielen, um wie this blog.

+0

Sie sollten '* Action 'verwenden, außer Sie haben einen bestimmten Grund,' Route' zu ​​verwenden –

Antwort

1

Auch wenn Poof zu einer anderen Aktion umleitet, ist es immer noch eine Aktion selbst und als solche muss es eine ActionResult zurückgeben. RedirectToAction gibt aus genau diesem Grund eine ActionResult zurück.

public ActionResult Poof(Guid id) 
{ 
    // ... 

    return RedirectToAction("Show", new {Id = id}); 
} 
Verwandte Themen