2010-07-06 3 views
5

ich, dass eine Anlage will, wenn die Benutzeranmeldung zu Hause/indexzu einer Action in mvc umleiten, aber nicht wollen Seite durch Rückkehr Ansicht gehen()

verwende

ich mag nicht

return view('~/views/home/index'); 
geht dann

Ich möchte es umleiten zu einem ActionResult-Index von Home-Controller meiner Web-Anwendung (in asp.net MVC)

wie kann ich dies ohne return view(); Ich möchte ihn umleiten.

public actionresult login 

if(userlogin) 
{ 
// goes to index page ? what i do here then user goes to index page of home controller 
} 
else 
{ 
return view() 
} 
+0

BTW, wenn Sie Ihr MVC-Projekt erstellt die Verwendung von Projektvorlage in Visual Studio, sollte es bereits den Account-Controller für Sie generiert haben. Selbst wenn Sie es nicht verwenden würden, würde es solche Dinge demonstrieren, die Sie verwenden könnten. (Da Darin's Antwort ist genau das, was es tut ...) – GalacticCowboy

Antwort

18

Sie könnten umleiten:

return RedirectToAction("index"); 

und wenn die Aktion auf einem anderen Controller als auch den Controller-Namen angeben:

return RedirectToAction("index", "home"); 
+0

Ich verwendete Return Redirect ("/ home/index"); –

+2

Das ist nicht gut, da Sie die Route "/ home/index" fest codieren und an dem Tag, an dem Sie Ihre Routenregeln ändern, wird es Sie beißen. –

+2

Plus, * return Redirect ("/ home/index"); * schlägt fehl, sobald Sie in einem vroot ausgeführt werden. Geben Sie ihm zumindest ein "~" vor, obwohl das * RedirectToAction() *, wie Darin betont, viel besser ist. – GalacticCowboy

Verwandte Themen