为什么Request.QueryString ["ReturnUrl"]返回NULL,即使它存在于URL中?

Bla*_*man 9 asp.net asp.net-mvc query-string

(这是一个更狭隘的问题)

在我的asp.net MVC操作中,我正在查看ReturnUrl值是否在URL中.

我的网址看起来像这样:

http://localhost:56112/user/login?ReturnUrl=/user/settings
Run Code Online (Sandbox Code Playgroud)

在我的操作中,我正在查看是否存在查询字符串值,并且它返回NULL?怎么会这样?

代码:

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

}
Run Code Online (Sandbox Code Playgroud)

跟踪应用程序,它只是跳过if语句的主体,即它是NULL.

怎么解释这个?

更新

在检查用户是否已登录的控制器中,我有一个ActionFilter,如下所示:

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

         context.Response.Redirect(loginUrl);
    }
Run Code Online (Sandbox Code Playgroud)

Jus*_*tin 3

尝试调试代码 - 您应该能够在调试器中看到 QueryString 参数的整个列表,以便您可以查看是否拼写错误。