我有一个包含按钮的asp.net页面。当点击该按钮时,我希望在正常URL后面添加类似于?id=1的查询字符串。如何从服务器端的c#代码实现这一功能?
我有一个包含按钮的asp.net页面。当点击该按钮时,我希望在正常URL后面添加类似于?id=1的查询字符串。如何从服务器端的c#代码实现这一功能?
有三种方法可以实现页面重定向:服务端重定向、LinkButton以及客户端按钮或链接。
您可以在按钮事件处理程序中将重定向到具有查询字符串的位置。
Response.Redirect("myPage.aspx?id=" + myId.toString(), true);
你可以将按钮呈现为LinkButton,并设置URL... LinkButton myLinkButton = new LinkButton("myPage.aspx?id=" + myId.toString(), true);
或者,您可以将按钮呈现为客户端链接-当我使用重复器控件时,这就是我所做的...
<a href='myPage.aspx?id=<%# Eval("myID") %>'>Link</a>
我更倾向于最后一种方法,尤其是当我需要一大堆链接时。
顺便说一下,这是KISS原则的应用——你只需要一个普通的链接,不需要经过服务器端麻烦地创建一个带有查询字符串的链接。在可能的情况下尽可能使用普通客户端HTML是保持ASP.Net简单的方法。我在实际应用中没有看到足够多的这种技术。
btnSubmit.PostBackUrl = "Page.aspx?id=" + id.ToString() + "&newquerystring=newvalue";
其中Page.aspx是我想要进行回发的页面(同一页面),ID是我用来从我们的CMS中获取内容的动态ID,显然还有新的查询字符串项。
希望这能帮到您。
有多种方法可以在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());
}
或者您可以使用以下代码。
string url = Request.Url.GetLeftPart(UriPartial.Path);
url += (Request.QueryString.ToString() == "" ) ? "?pagenum=1" : "?" + Request.QueryString.ToString() + "&pagenum=1";