如何在点击asp.net按钮后在url后添加查询字符串
我有一个有点击按钮的asp.net页面。当点击它时,我希望在正常的URL之后添加诸如?id = 1的查询字符串。我怎么能从服务器端的C#代码做到这一点?如何在点击asp.net按钮后在url后添加查询字符串
三种方式...服务器端重定向,LinkButton和客户端按钮或链接。
你可以有你的按钮事件处理函数重定向到一个查询字符串的位置...
Response.Redirect("myPage.aspx?id=" + myId.toString(), true);
您可以显示该按钮为一个LinkButton,并设置网址...
LinkButton myLinkButton = new LinkButton("myPage.aspx?id=" + myId.toString(), true);
或者,您可以将该按钮渲染为客户端链接 - 这是我使用Repeater控件时所做的...
<a href='myPage.aspx?id=<%# Eval("myID") %>'>Link</a>
我更喜欢最后一种方法,特别是当我需要一大堆链接时。
顺便说一句,这是KISS的应用 - 你需要的只是一个普通的旧链接,你不需要跳过服务器端的箍来创建一个链接与查询字符串。尽可能使用常规的客户端HTML如何简化ASP.Net。我在野外看不到足够的技术。
有多种方法可以在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());
}
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";
我意识到这是一个老问题,但我有完全相同的问题,当我们想创建一个新的URL字符串所以提交表单时,谷歌Analytics(分析)可以“算”。
我正在使用ASP:Button来提交表单并保存到数据库并在回发上显示感谢消息。因此,提交前后的网址是相同的,我必须以某种方式对其进行修改。
我用下面的代码和它的工作对我来说:
C#,在Page_Load中:
btnSubmit.PostBackUrl = "Page.aspx?id=" + id.ToString() + "&newquerystring=newvalue";
其中Page.aspx是,我想回发到按钮的页面(同页面),ID是我用来从我们的CMS获取内容的动态ID,显然是新的querystring项目。
我希望这会有所帮助。
如果其提交按钮,然后使用其名称属性,看看它是否被点击。否则使用clientside javascript向表单添加一个隐藏的输入 – 2013-05-06 18:28:10