HI,我需要在用户单击特定的LinkButton时删除查询字符串。 因此,例如,如果查询字符串是http://UserProfileManager.com?UserID=1234 ....当用户点击链接按钮时,我希望网址为http://UserProfileManager.com。问题是一切都在一个页面上,我使用asp:panel来显示和隐藏网页的不同区域。
任何想法都会受到赞赏。
答案 0 :(得分:4)
您有几种选择:
1)在您的代码中,如果查询字符串包含“UserID”键,只需将LinkButton的URL设置为较短的地址:
if (Request.QueryString["UserID"] != null) {
this.LinkButton.PostBackUrl = "http://UserProfileManager.com";
} else {
// other address
}
2)在隐藏字段而不是查询字符串中发送UserID。
3)将您的视图分开并编辑页面 - 将所有内容放在一个* .aspx中可能会导致更多麻烦,而不是它的价值。
答案 1 :(得分:1)
你实际上无法从URL中删除查询字符串。我的意思是说没有.remove()方法可用于此。 如果您仍想这样做,则必须使用.substring()方法并手动完成。
只是一个可能有用的提示: 如果您使用QueryString值在同一页面上维护不同的状态,那么我宁愿建议您将这些值保存在页面上的ViewState中并相应地对其进行更改。通过这种方式,您的网址将保持干净,用户将无法损害您的流量并且工作正常。
小心!答案 2 :(得分:0)
查看请求对象 - 虽然我不记得确切的属性,但有一些行方案(会返回“http://”) - 会有一个,或者组合会给你什么需要。
进一步研究 - 查看Request.Url属性。然后剥离查询字符串。我无法在uri / uricomponent类中看到一个确切的方法来准确地提供您正在寻找的内容,但它不应该那么难。
答案 3 :(得分:0)
在页面加载时,您可以将查询字符串提取到隐藏文本框。
当用户点击按钮时,清除文本框
如果用户导航离开,请使用文本框中的字符串,并将查询字符串附加到URL。
我希望这会有所帮助 属