【问题标题】:Passing in a query string to generate a new URL传入查询字符串以生成新 URL
【发布时间】:2018-07-16 08:54:26
【问题描述】:

我有一个带有下拉列表的网页,当您选择产品时,页面会刷新并显示新信息。我想要做的是向页面传递一个查询字符串,这样我就可以通过 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 值。

【问题讨论】:

  • 显示下拉列表的代码及其逻辑。
  • catch (Exception ex) 并不是最好的方法——它是一种反模式。你真的应该只捕获一个你可以有意义处理的特定异常。

标签: c# asp.net query-string


【解决方案1】:

你可以做这样的事情。检查 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;
    }
}

【讨论】:

  • 为什么.ToList()在这里?
  • @Enigmativity。没理由。我很快就写了,没有意识到.Items 已经是一个集合了。
猜你喜欢
  • 2012-10-12
  • 2019-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-14
  • 2014-05-30
相关资源
最近更新 更多