传递查询字符串以生成新的URL

时间:2018-07-16 08:54:27

标签: c# asp.net query-string

我有一个带有下拉列表的网页,当您选择产品时,页面会刷新并显示新信息。我想做的就是将查询字符串传递到页面中,这样我就可以通过URL来打开页面,而不必单击下拉列表项。

我不确定如何在页面加载中执行此操作。我的页面默认为默认选项,但是我希望其他下拉列表项能够通过URL访问,因此我需要知道如何向其传递查询字符串。

 private void BindDropDownList()
        {
            {
                try
                {
                    string[] productTexts;

                    string[] productValues;





                    BizManager biz = new BizManager();

                    biz.GetProductSeriesList(out productTexts, out productValues);

                    DDLProduct.Items.Clear();

                    int x = 0;
                    foreach (string s in productTexts)
                    {
                        ListItem li = new ListItem(s, productValues[x]);
                        x++;
                        DDLProduct.Items.Add((li));
                    }
                }
                catch (Exception ex)
                {
                    ErrMsg = App.HandleError(MethodBase.GetCurrentMethod(), ex, string.Empty);
                }
            }
        }

在这里,我从Web配置中的一个键调用参数,但是我需要我的URL看起来像这样

https://apps.co.uk/PackingStatsShiftOverview/Default.aspx?Product=G120C

https://apps.co.uk/PackingStatsShiftOverview/Default.aspx?Product=PM240-2

https://apps.co.uk/PackingStatsShiftOverview

您使用以下命令访问查询字符串值

Request.QueryString [“产品”]

您需要处理它不存在并立即执行操作,否则,您的下拉列表需要默认为QueryString值。

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作。检查QueryString是否存在,如果存在,则检查DropDownList值是否匹配。找到后,设置正确的DropDownList值。

if (Request.QueryString["Product"] != null)
{
    string product = Request.QueryString["Product"].ToString();

    if (DropDownList1.Items.Cast<ListItem>().Any(x => x.Value == product))
    {
        DropDownList1.SelectedValue = product;
    }
}