【问题标题】:Removing a querystring from url in asp.net从 asp.net 中的 url 中删除查询字符串
【发布时间】:2011-02-26 19:10:39
【问题描述】:

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

任何想法都将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    查看请求对象 - 虽然我不记得确切的属性,但有一些线路方案(将返回“http://”) - 将有一个或组合可以为您提供您想要的需要。

    进一步研究 - 查看 Request.Url 属性。然后剥离查询字符串。我在 uri / uricomponent 类中看不到确切的方法来准确地为您提供所需的内容,但这应该不难。

    【讨论】:

      【解决方案2】:

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

      当用户点击按钮时清除文本框

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

      我希望这会有所帮助 Sp

      【讨论】:

        【解决方案3】:

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

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

        保重!

        【讨论】:

          【解决方案4】:

          您有多种选择:

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

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

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

          3) 将您的视图和编辑页面分开 - 将所有内容放在一个 *.aspx 中可能会带来更多的麻烦,而不是值得。

          【讨论】:

          • 我想在隐藏字段中发送 UserID,但用户从 gridview 中选择要编辑的记录(编辑是一个超链接),其中我将 DataNavigateUrlFields 值设置为 UserID 和 DataNavigateUrlFormatString 设置查询字符串。如何处理将 UserID 设置为 gridView 中的隐藏字段?
          • 很难将自己从GridView 控件中解开出来——通常一分钱一磅。既然是这种情况,我建议使用选项 1 或 3。
          • 选项 1 有效。但是,它需要在 LinkBut​​ton 的属性窗口中设置 url;非常感谢。
          猜你喜欢
          • 2011-02-02
          • 1970-01-01
          • 2016-07-22
          • 2011-03-28
          • 2018-12-08
          • 2019-02-27
          • 2019-01-14
          相关资源
          最近更新 更多