加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何在.NET ASP C#中正确使用QueryString?

发布时间:2020-12-16 03:34:57 所属栏目:asp.Net 来源:网络整理
导读:我使用ASP和C#在.NET中有一个Web表单.此表单具有DropDownList控件,其AutoPostBack属性设置为True. 当用户从DropDownList中选择项目时,将显示表单上的某些数据. 现在,我希望用户只需复制其上有QueryString的URL就可以共享他或她的数据,例如http://www.site.co
我使用ASP和C#在.NET中有一个Web表单.此表单具有DropDownList控件,其AutoPostBack属性设置为True.

当用户从DropDownList中选择项目时,将显示表单上的某些数据.

现在,我希望用户只需复制其上有QueryString的URL就可以共享他或她的数据,例如http://www.site.com?ProdID=1234.

我已经做了以下尝试来完成这个:

protected void Page_Load(object sender,EventArgs e)
{
    // check if the URL has a QueryString item if yes the use it.
    if (!String.IsNullOrEmpty(Request.QueryString["ProdID"]))
    {
        ddlProduct.SelectedIndex = ddlProduct.Items.IndexOf(ddlProduct.Items.FindByValue(Request.QueryString["ProdID"]));
    }
}

这段代码的问题在于,当用户从DropDownList中选择一个不同的项时,他或她选择的项被Page_Load()覆盖,因为我们现在在URL上有一个QueryString. (我构建QueryString,然后使用Redirect()方法到事件的同一页面)

所以我的问题是:当用户从DropDownList更改所选项目并在表单上显示所选项目的正确数据时,是否可以动态更改URL的查询字符串?

我觉得这就像鸡肉或鸡蛋问题.

谢谢.

解决方法

检查页面是否与现有逻辑一起回发到服务器,如下所示:

if(!IsPostBack && !String.IsNullOrEmpty(Request.QueryString["ProdID"]))
{
    ddlProduct.SelectedIndex = ddlProduct.Items.IndexOf(ddlProduct.Items.FindByValue(Request.QueryString["ProdID"]));
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读