(這是一個更窄的問題)爲什麼Request.QueryString [「ReturnUrl」]返回NULL,即使它存在於URL中?
在我的asp.net MVC操作中,我正在查看ReturnUrl值是否在URL中。
我的網址是這樣的:
http://localhost:56112/user/login?ReturnUrl=/user/settings
在我的行爲,我要找如果查詢字符串值存在,它返回NULL?怎麼會這樣?
代碼:
if(Request.QueryString["ReturnUrl"] != null)
{
}
通過應用程序跟蹤,它只是跳過if語句的身體即是NULL。
這怎麼解釋?
更新
在來檢查,如果用戶已經登錄了,我有一個ActionFilter看起來像控制器:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
// some stuff
string loginUrl = FormsAuthentication.LoginUrl + "/user/settings;
context.Response.Redirect(loginUrl);
}
我只是跑了一個快速測試,它爲我工作得很好。你使用任何自定義的http處理程序或類似的東西? – 2010-01-29 15:46:45
看看這個以及:http://stackoverflow.com/questions/1783059/query-string-with-slashes-not-working-in-asp-net-mvc – 2010-01-29 15:52:25
@jacerhea我有一個自定義過濾器,它會重定向到登錄頁面。看到我上面的更新 – Blankman 2010-01-29 19:44:59