2016-03-28 5 views
1

In meiner MVC 4 Application Controller-Seite, wie kann! IsPostback für die Überprüfung der UserId-Management-Sitzung oder nicht verwenden. wie unten Code:Wie zu verwenden! IsPostback in MVC 4 Controller Seite

 if (!IsPostback) 
     { 
      if (Session["UserId"] != null) 
      { 
       return RedirectToAction("Users", "UsersList"); 
      } 
      else 
      { 
       return RedirectToAction("Index", "Index"); 
      } 
     } 

ein idea.Thanks voran haben

Antwort

1

können Sie die URL Referer überprüfen, ob es das gleiche der aktuellen Seite ist oder nicht

private bool IsPostBack() 
    { 
     bool isPost = string.Compare(Request.HttpMethod, "POST", 
     StringComparison.CurrentCultureIgnoreCase) == 0; 
     if (Request.UrlReferrer == null) return false; 

     bool isCurrentUrl = string.Compare(Request.Url.AbsolutePath, 
     Request.UrlReferrer.AbsolutePath, 
     StringComparison.CurrentCultureIgnoreCase) == 0; 

     return isPost && isCurrentUrl; 
    } 
+0

#Fedri Qrueger eigentlich mein Motiv ist das erste Mal Benutzeranmeldung nach dem Login erfolgreich ich speichern seine/ihre Benutzer-ID in der Sitzung dann nach jeder Seite direkt von meiner Anwendung im dort Benutzeridentifizierung verwalten Sitzung oder nicht, wenn Benutzer nicht in Sitzung dann werde ich umleiten in Login-Seite andere weise Seite, diese Art von Fluss –

+0

dann könnten Sie mit der benutzerdefinierten Authentifizierung Attribut in Betracht gezogen werden. http://www.bradygaster.com/post/custom-authentication-with-mvc-3.0 und auf Web-Konfiguration gesetzt

+0

#Fedri Qrueger Es tut mir leid, das ist kein Weg, was ich genau suche, gibt es andere Möglichkeiten wie oben meine Beispiel-Code-Typ. –

0

Die richtige Art und Weise der Wenn Sie dies tun, teilen Sie Ihren Code in zwei verschiedene Funktionen auf, indem Sie verschiedene HTTP-Methodenattribute hinzufügen.

Zum Beispiel ist dies ein Äquivalent zu IsPostBack:

[HttpGet] 
    public ActionResult Login() 
    { 
     if (Session["UserId"] != null) 
     { 
      return RedirectToAction("Users", "UsersList"); 
     } 
     else 
     { 
      return RedirectToAction("Index", "Index"); 
     } 
    } 

In ASP.NET Web Forms IsPostBack wahr zurückgibt, wenn HTTP-Methode ist POST.

So ! IsPostBack ist zu prüfen, ob Anforderungsmethode GET ist (aber diese Technik ist in Web Forms nicht in MVC verwendet).