[英]Dynamically append query parameters to URL on POST with .NET
我有一個非常簡單的html表單,提交后應將用戶重定向到另一個頁面。 表單中有一個字段,如果用戶輸入了值,則需要將該值附加到重定向URL(通過查詢字符串)。
因此,如果用戶以表格形式輸入“ hello”,則他們將被重定向到“ mysite.com?x=hello”,否則它將直接定向到“ mysite.com?x=“。 目前,我的代碼正在忽略POST中的IF語句,任何人都可以看到問題所在嗎?
這是我的代碼:
<form>
<input type="text" id="test" name="test" />
<input type="submit" value="Submit" />
</form>
if(IsPost){
var x = Request.Form["test"].IsEmpty() ? false : true;
if(x){
x = "hello";
}
Response.Redirect("http://www.mysite.com?x=" + x);
}
當您嘗試為布爾值x
( true
/ false
)分配字符串( "hello"
)時,當前代碼將無法編譯,但是只有在x
為false時才將其分配,即Request.Form["test"]
為空的。
嘗試這個:
string redirectTo = Request.Form["test"];
if (string.IsNullOrEmpty(redirectTo))
{
redirectTo = "hello";
}
Response.Redirect("http://www.mysite.com?x=" + HttpUtility.UrlEncode(redirectTo));
尚不清楚您希望從問題中確切地發生什么,但是您必須能夠從這里弄清楚。 如果要在輸入為空時重定向到?x=
,只需將if
塊刪除為Request.Form["not entered item"]
將返回null
。
當@ChrisK對您的問題發表評論時,有更好的方法可以做到這一點。
您正在檢查IsPost
但它應該是IsPostBack
。
請參閱此MSDN文章以供參考。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.