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

时间:2010-06-02 12:04:10

标签: c# asp.net .net-3.5 url panel

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

任何想法都会受到赞赏。

4 个答案:

答案 0 :(得分:4)

您有几种选择:

1)在您的代码中,如果查询字符串包含“UserID”键,只需将LinkBut​​ton的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。

我希望这会有所帮助 属