ASP.NET查询字符串

3
我正在使用查询字符串将值从一个页面传递到另一个页面。我正在尝试使用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);

    }

的翻译是无意义的,可能是HTML标签错误。

我在id1和name1中获取到null值。

请问有什么帮助吗?

6个回答

5

将这一行代码修改为:

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

3

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

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

1

这是因为你的查询字符串应该是类似于这样的:

MyPage.aspx?id=xxx&name=yyy

你没有传递数值,只有名称...


1
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

您没有为值指定名称。您需要:

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

1

在第一页构建URL时,您应该这样做:

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

查询字符串由键值对组成,您应该提供这些键。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接