我看到我的朋友正在做一些Web開發,他的一個代碼引起了我的注意,那就是Response.Redirect。=有什麼用?在鏈接?
Home?=
有什麼用,是不是LogIn.aspx
是網頁的名字,如果它有Home?=
那麼它仍然是重定向的。有人可以回答我的這個問題,並解釋得很好。
String url = "LogIn.aspx?Home?=" + Username;
Response.Redirect(url);
我看到我的朋友正在做一些Web開發,他的一個代碼引起了我的注意,那就是Response.Redirect。=有什麼用?在鏈接?
Home?=
有什麼用,是不是LogIn.aspx
是網頁的名字,如果它有Home?=
那麼它仍然是重定向的。有人可以回答我的這個問題,並解釋得很好。
String url = "LogIn.aspx?Home?=" + Username;
Response.Redirect(url);
更新
從您的所有意見的工作,答案是:查詢字符串參數名稱(鍵)實際上是"Home?"
,而不僅僅是"Home"
。以下是詳細信息(包括爲何產生技術上不正確的代碼)。
如果它有Home?,它仍然是重定向?=?
因爲沒有理由它不應該重定向。授予該網址無效(?
是一個保留字符,它不能在查詢字符串中出現未編碼,因此URL中的第二個?
不正確),但瀏覽器是處理無效URL的相當內容。
另外,除非Username
已經進行了URL編碼,否則根據Username
的內容,URL可能會有其他錯誤。 (所有查詢字符串參數必須是URL編碼,在.net中你做到這一點與HttpUtility.UrlEncode
。)
回覆您的評論:
我的意思是我不知道爲什麼他使用家庭=它有什麼用途
它沒有用處,這是一個錯誤。 他可能只是意味着(不,顯然不是,看你的下一個評註後下)
String url = "LogIn.aspx?Home=" + Username;
...這會更正確是:
String url = "LogIn.aspx?Home=" + HttpUtility.UrlEncode(Username);
(從技術上講,你必須對密鑰和值都進行網址編碼["Home"
和Username
],但URL編碼形式"Home"
爲"Home"
,所以我們可以在不調用密鑰的情況下離開。如果密鑰需要具有任何的URL保留字符的在它)
重新您的進一步的評論包括完全驗證碼。
string retrieveValue; protected void Page_Load(object sender, EventArgs e) { this.lblUsername.Text = Request.QueryString["Home?"; retrieveValue = this.lblUsername.Text; }
假設語法錯誤在上述固定(在第3行缺少]
),看起來他實際上使用"Home?"
作爲關鍵字(參數名稱)。這意味着重定向應該是:
String url = "LogIn.aspx?" + HttpUtility.UrlEncode("Home?") + "=" + HttpUtility.UrlEncode(Username);
...因爲鍵中有保留字符(?
)。因爲收到時會爲你解碼,所以應該使上面的代碼正常工作。
請注意,大多數瀏覽器可能會讓你脫離字符串,因爲他指定它。這是不正確的,但以瀏覽器可能允許的方式。
string retrieveValue; protected void Page_Load(object sender,EventArgs e) { this。 lblUsername.Text =的Request.QueryString [ 「家?」]; retrieveValue = this.lblUsername.Text; } – 2012-07-25 09:01:11
@WilliamRodswickerson:。嗯,這是一個很奇怪的查詢參數名稱請參見更新 – 2012-07-25 09:06:01
謝謝你很好地解釋 – 2012-07-25 09:09:18
無論T.J涵蓋的錯誤是什麼,他打算做的是加載頁面LogIn.aspx,將變量「Home」設置爲訪問者用戶名。這允許頁面「獲取」變量並使用它。它基本上是一種將數據從一頁發送到另一頁的方式。
哦,現在我明白了。 – 2012-07-25 09:03:50
你的問題非常難以閱讀 - 你能寫一些標點符號嗎(即全站,逗號等)嗎? – freefaller 2012-07-25 08:54:18
以及澄清爲什麼你認爲重定向不應該發生。 – 2012-07-25 08:54:56
以及我的意思是我不知道他爲什麼使用Home?=和它有什麼用處:(對不起,不是純英文的揚聲器 – 2012-07-25 08:57:53