简体   繁体   English

Asp.Net查询字符串

[英]Asp.Net Query String

I am using Querystring to pass values from one page to other. 我使用Querystring将值从一个页面传递到另一个页面。 I am tring to implement encoding and decoding using the Server.UrlDecode and urlEncode. 我想使用Server.UrlDecode和urlEncode实现编码和解码。

Query string returns a null value, but I can check the values are been sent in URL. 查询字符串返回空值,但我可以检查值是否已在URL中发送。

The two pages are: 这两页是:

QueryString.aspx 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);
}

;; ;;

In another page : 在另一页:

QueryStringValuesTransfer.aspx: 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);

    }

} }


I am get null values in the id1 and name1. 我在id1和name1中得到空值。

Any help please.. 任何帮助请..

改变这一行:

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

现在您只需在查询字符串中设置值,您需要为它们分配名称,以便您可以再次获取它们:

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

That's because your query string should be something like 那是因为你的查询字符串应该是这样的

MyPage.aspx?id=xxx&name=yyy

You are not passing the values, only the names... 你没有传递价值,只传递名字......

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));

You aren't specifying a name for the values. 您没有为值指定名称。 You need: 你需要:

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

When constructing the URL in the first page you should do this: 在第一页中构建URL时,您应该这样做:

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

The query string consists of key-value pairs, you should provide the keys. 查询字符串由键值对组成,您应该提供键。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM