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

本文关键字:ASPX 页面 字符串 查询 | 更新日期: 2023-09-27 17:49:23

我有一个Listview,它是自动填充与sqldatasource,我在这里我有一个链接按钮内的Listview通过点击,我被重定向到其他一些页面。但是,在重定向时,我需要将ID和用户名作为querystring传递到新页面。这个ID和用户名是我通过querystring从前页接收到此页的。所以,我需要知道如何在前端或aspx页面上阅读此内容并将其与链接按钮的回发url绑定?请给我一些建议。谢谢。

这是我正在尝试的代码:

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

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

http://localhost: 38524/WebForm4.aspx吗?id = % 3 c % = id % 20% % 3 e

当我通过接收querystring将id的值设置为1时,我是否想获得http://localhost:38524/WebForm4.aspx?id=1。

现在我也在尝试这个:

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

但这不起作用。当我点击链接按钮,它不是重定向到WebForm4。Aspx则是刷新到同一页面。

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

您可以使用下面的示例将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>

在传递查询字符串的页面上,声明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页面上,您可以通过by <%=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设置从codebehind

回发

Update2将postback更改为

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

你第二次差点就成功了。您读取查询字符串很好。少了一些小东西,就是前面加斜杠的波浪号:

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

同时,将哈希符号替换为等号;<%# ... %>是数据绑定语法。要从服务器端代码返回字符串,需要使用这个