单击asp.net按钮后如何在url后添加查询字符串

时间:2013-05-06 18:26:44

标签: c# asp.net postback query-string

我有一个asp.net页面,有一个点击按钮。单击它时,我希望在正常URL之后添加一个查询字符串,例如?id = 1。我怎样才能从服务器端c#代码那里做到这一点?

4 个答案:

答案 0 :(得分:10)

三种方式......服务器端重定向,LinkBut​​ton和客户端按钮或链接。

您可以将按钮事件处理程序重定向到具有查询字符串的位置...

 Response.Redirect("myPage.aspx?id=" + myId.toString(), true);

您可以将按钮渲染为LinkBut​​ton并设置URL ...

 LinkButton myLinkButton = new LinkButton("myPage.aspx?id=" + myId.toString(), true);

或者,您可以将按钮渲染为客户端链接 - 这是我在使用Repeater控件时所做的...

 <a href='myPage.aspx?id=<%# Eval("myID") %>'>Link</a>

我更喜欢最后一种方法,特别是当我需要一大堆链接时。

顺便说一下,这是KISS的应用程序 - 你需要的只是一个常规的旧链接,你不需要跳过服务器端的箍来创建一个带有查询字符串的链接。尽可能使用常规客户端HTML是如何简化ASP.Net。我在野外看不到足够的技术。

答案 1 :(得分:4)

我意识到这是一个老问题,但是当我们想要创建一个新的URL字符串时,我遇到了完全相同的问题,因此Google Analytics可以计算出#34;&#34;提交表单时。

我正在使用ASP:Button提交表单并保存到数据库并在回发时显示感谢信息。因此,提交前后的URL是相同的,我必须以某种方式对其进行修改。

我使用了以下代码,它对我有用:

C#,在Page_Load中:

btnSubmit.PostBackUrl = "Page.aspx?id=" + id.ToString() + "&newquerystring=newvalue";

其中Page.aspx是包含我想要回发的按钮的页面(同一页面),ID是我用来从CMS中获取内容的动态ID,显然是新的查询字符串项。

我希望这会有所帮助。

答案 2 :(得分:1)

在url中添加查询字符串有多种方法。您可以使用以下代码如果要在服务器端添加值:

protected void Button_Click(object sender, EventArgs e)
{
   Int32 id = 1;
   // Or your logic to generate id
   string url = String.Format("anypage.aspx?id={0}",id.ToString());

}

答案 3 :(得分:1)

How to build a query string for a URL in C#?

或者您可以使用此代码。

string url = Request.Url.GetLeftPart(UriPartial.Path);
url += (Request.QueryString.ToString() == "" ) ? "?pagenum=1" : "?" + Request.QueryString.ToString() + "&pagenum=1";