Строка запроса Asp.Net - PullRequest
       3

Строка запроса Asp.Net

3 голосов
/ 23 сентября 2010

Я использую Querystring для передачи значений с одной страницы на другую. Я пытаюсь реализовать кодирование и декодирование с использованием Server.UrlDecode и urlEncode.

Строка запроса возвращает нулевое значение, но я могу проверить, что значения были отправлены в URL.

Две страницы:

QueryString.aspx

protected void Page_Load(object sender, EventArgs e)
{


}
protected void Button1_Click(object sender, EventArgs e)
{
    string id = "1";
    string name = "aaaa";

    string url = string.Format("QueryStringValuesTransfer.aspx?{0}&{1}", Server.UrlEncode(id), Server.UrlEncode(name));


    Response.Redirect(url);
}

;;

На другой странице:

QueryStringValuesTransfer.aspx:

 public partial class QueryStringValuesTransfer : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string id1 = Server.UrlDecode(Request.QueryString["id"]);
        string name1 = Server.UrlDecode(Request.QueryString["name"]);
        Response.Write(id1 + name1);

    }

}


Я получаю нулевые значения в id1 и name1.

Любая помощь, пожалуйста ..

Ответы [ 6 ]

5 голосов
/ 23 сентября 2010

Изменить эту строку:

string url = string.Format("QueryStringValuesTransfer.aspx?id={0}&name={1}", Server.UrlEncode(id), Server.UrlEncode(name));
3 голосов
/ 23 сентября 2010

Сейчас вы только устанавливаете значения в строке запроса, вам нужно присвоить им имена, чтобы вы могли получить их снова:

string url = string.Format("QueryStringValuesTransfer.aspx?id={0}&name={1}", Server.UrlEncode(id), Server.UrlEncode(name));
1 голос
/ 23 сентября 2010

При создании URL на первой странице вы должны сделать это:

string url = string.Format("QueryStringValuesTransfer.aspx?id={0}&name={1}", Server.UrlEncode(id), Server.UrlEncode(name));

Строка запроса состоит из пар ключ-значение, вы должны предоставить ключи.

1 голос
/ 23 сентября 2010

Вы не указываете имя для значений. Вам нужно:

string url = string.Format("QueryStringValuesTransfer.aspx?id={0}&name={1}", Server.UrlEncode(id), Server.UrlEncode(name)); 
1 голос
/ 23 сентября 2010
string url = string.Format("QueryStringValuesTransfer.aspx?{0}&{1}", Server.UrlEncode(id), Server.UrlEncode(name));

Должно быть:

string url = string.Format("QueryStringValuesTransfer.aspx?id={0}&name={1}", Server.UrlEncode(id), Server.UrlEncode(name));
1 голос
/ 23 сентября 2010

Это потому, что ваша строка запроса должна выглядеть примерно так:

MyPage.aspx?id=xxx&name=yyy

Вы не передаете значения, только имена ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...