簡體   English   中英

使用.NET將查詢參數動態附加到POST上的URL

[英]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);
}

當您嘗試為布爾值xtrue / 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM