如何将查询字符串读入ASPX页面?

时间:2016-06-25 07:01:13

标签: c# asp.net

我有一个自动填充sqldatasource的Listview,我在Listview中有一个Link Button,点击我被重定向到其他页面。但是重定向时我需要将ID和用户名作为查询字符串传递给新页面。我通过上一页到此页面的查询字符串收到此ID和用户名。所以,我需要知道如何在frondend或aspx页面上阅读它并将其与Linkbutton的回发网址绑定?请建议我这个。感谢。

以下是我正在尝试的代码:

  <asp:LinkButton ID="LinkButton2" runat="server" PostBackUrl="WebForm4.aspx?id=<%=id %>">here</asp:LinkButton>

但是进入下一页我会这样:

http://localhost:38524/WebForm4.aspx?id=%3C%=id%20%%3E

我是否想获得http://localhost:38524/WebForm4.aspx?id=1,因为我通过接收查询字符串将id的值设置为1。

现在我也在尝试这个:

<asp:LinkButton ID="LinkButton2" runat="server" Text="here" PostBackUrl='<%# string.Format
 ("WebForm4.aspx?postquestion={0}", Request.QueryString["id"]) %>'></asp:LinkButton>

但这不起作用。当我点击链接按钮时,它不会重定向到WebForm4.aspx,而是刷新到同一页面。请帮帮我。

3 个答案:

答案 0 :(得分:0)

在您传递Querystrings的页面上,声明Public字符串变量。并在PageLoad上读取查询字符串并将其传递给这些变量。

public string QueryString1;
public string QueryString2;
protected void Page_Load(object sender, EventArgs e)
{
  Page.DataBind();// Imp to add for setting values from front side
    QueryString1 = Request.QueryString["QueryString1"].ToString();
    QueryString2 = Request.QueryString["QueryString2"].ToString();
    LinkButton2.PostBackUrl = "WebForm4.aspx?id=" + QueryString1;
}

然后在aspx页面上,您可以按<%=QueryString1 %><%=QueryString2 %>

访问这些值
<div class="row" runat="server" visible="False" id="mainDiv">

    <div class="col-md-12">
        <div class="panel panel-default">
            <div class="panel-body">
                <div id="divMsg" runat="server">
                       <%=QueryString1 %>
                    <%=QueryString2 %>
                    <asp:Label runat="server" ID="lblMsg"></asp:Label>
                </div>
            </div>
        </div>
    </div>
</div>

更新:请参阅Page_Load以设置代码隐藏的回发

Update2 将回发更改为

 PostBackUrl='<%#String.Format("WebForm4.aspx?id={0}",QueryString1) %>'

我希望它会有所帮助(经过测试)

答案 1 :(得分:0)

您可以使用以下示例将ID和UserName传递到查询字符串中的下一页:

<asp:LinkButton ID="LinkButton2" runat="server" PostBackUrl='<%# String.Format("WebForm4.aspx?id={0}&userName={1}", Request.QueryString["id"],Request.QueryString["userName"]) %>'>here</asp:LinkButton>

答案 2 :(得分:0)

你几乎是第二次尝试的。你仔细阅读查询字符串。缺少的东西是波浪号,后面是正斜杠:

<asp:LinkButton ID="LinkButton2" runat="server" Text="here" 
    PostBackUrl='<%# string.Format("~/WebForm4.aspx?postquestion={0}", Request.QueryString["id"]) %>'></asp:LinkButton>

另外,用等号替换哈希符号; <%# ... %>Data binding syntax。您需要this one从服务器端代码返回一个字符串。