Warum Verlangen.QueryString["ReturnUrl"] NULL zurückgeben, auch wenn es in der URL vorhanden?

(Dies ist eine eher schmale Frage)

In meinem asp.net MVC action, ich bin auf der Suche, wenn die ReturnUrl-Wert in der URL.

Meine Url sieht wie folgt aus:

http://localhost:56112/user/login?ReturnUrl=/user/settings

In meinem handeln, ich bin auf der Suche, wenn das querystring-Wert existiert, und es ist NULL zurückgeben?? Wie kann das sein?

Code:

if(Request.QueryString["ReturnUrl"] != null)
{

}

Verfolgung durch die Anwendung, es ist einfach das überspringen der if-Anweisung den Körper, d.h. Sie ist NULL.

Wie können diese erklärt werden?

Update

In der Steuerung, die prüft, ob der Benutzer angemeldet hat, ich habe einen ActionFilter, dass sieht aus wie:

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);
        //some stuff
        string loginUrl = FormsAuthentication.LoginUrl + "/user/settings;

         context.Response.Redirect(loginUrl);
    }
  • Ich lief nur ein kurzer test, und es funktionierte gut für mich. Sind Sie mit einer benutzerdefinierten http-Handler oder ähnliches?
  • Werfen Sie einen Blick auf dies auch: stackoverflow.com/questions/1783059/...
  • Ich habe einen benutzerdefinierten filter, die nicht die Umleitung auf die login-Seite. siehe mein update oben
  • Verwenden Sie so etwas wie FireBug um zu überprüfen, was das eigentliche Anliegen, dass Ihre Anwendung zu bekommen; vielleicht ist es der browser, der zeigt eine URL an und verwendet eine andere?
  • Sie brauchen nicht != null im code. wenn die Anfrage.QueryString[] null ist, wird 0 zurück ich.e FALSCH .
InformationsquelleAutor Blankman | 2010-01-29
Schreibe einen Kommentar