从asp.net中的url中删除查询字符串

嗨,我需要在用户单击特定的LinkBut​​ton时删除查询字符串。 因此,例如,如果查询字符串是http://UserProfileManager.com?UserID=1234 ….当用户点击链接按钮时,我希望url为http://UserProfileManager.com 。 问题是一切都在一个页面上,我使用asp:panel来显示和隐藏网页的不同区域。

任何想法,将不胜感激。

你有几个选择:

1)在您的代码中,如果查询字符串包含“UserID”键,只需将LinkBut​​ton的URL设置为较短的地址:

if (Request.QueryString["UserID"] != null) { this.LinkButton.PostBackUrl = "http://UserProfileManager.com"; } else { // other address } 

2)在隐藏字段而不是查询字符串中发送UserID。

3)分离你的视图和编辑页面 – 将所有内容放在一个* .aspx中可能会导致更多的麻烦而不是它的价值。

你实际上无法从URL中删除查询字符串。 我的意思是说没有.remove()方法可用于此。 如果您仍想这样做,则必须使用.substring()方法并手动完成。

只是一个可能有用的提示:如果您使用QueryString值在同一页面上维护不同的状态,那么我宁愿建议您将这些值保存在页面上的ViewState中并相应地对其进行更改。 通过这种方式,您的URL将保持干净,用户将无法损害您的流量并且可以正常工作。

照顾自己!

在页面加载时,您可以将查询字符串提取到隐藏文本框。

当用户单击该按钮时,清除文本框

如果用户导航,请使用文本框中的字符串,并将查询字符串附加到URL。

我希望这有助于Sp

查看请求对象 – 虽然我不记得确切的属性,但有一些行方案(将返回“http://”) – 将有一个或组合将提供您所需的。

进一步研究 – 查看Request.Url属性。 然后剥离查询字符串。 我无法在uri / uricomponent类中看到一个确切的方法来为您提供您正在寻找的内容,但它不应该那么难。