【问题标题】:Where is the most appropriate location to check "Querystring is needed, else redirect"?检查“需要查询字符串,否则重定向”的最合适位置在哪里?
【发布时间】:2010-06-07 01:08:38
【问题描述】:

我有一个 ASP.NET 应用程序。在某些页面上,它需要与页面一起调用特定的查询字符串,以便处理数据。

哪里是检查所需查询字符串是否包含在 URL 中的最合适的位置,否则重定向到其他地方?

我只使用了一个母版页。

我们将不胜感激。

谢谢。

【问题讨论】:

    标签: c# asp.net query-string


    【解决方案1】:

    我会在每个需要查询字符串项的页面中检查 Page_Load 函数或更好的 Page_Init 函数。

    Link to ASP.NET page execution lifecycle.

    protected override void Page_Init (object sender, EventArgs e)
    {
       if(Request.QueryString["key1"] == "" || Request.QueryString["key1"] == null)
        {
          Response.Redirect("YOUR_PAGE_HERE");
        }
    }
    

    【讨论】:

      【解决方案2】:

      在使用它的页面上检查查询字符串。您希望尽可能将相关代码放在一起。

      【讨论】:

        【解决方案3】:

        越快越好 - 如果您真的只想重定向/转移到其他地方,为什么要花更多的时间在页面上?

        【讨论】:

          【解决方案4】:

          我在 Page_Load 处理程序中执行此操作,尽管它可能应该在 Page_Init() 中。

          我认为,母版页代码直到 Page_Init() 之后才会执行。

          【讨论】:

            【解决方案5】:

            您可以为任何需要查询字符串的页面创建自定义属性,并将其放置在页面定义中。然后您可以检查:a)处理程序(页面)上是否存在该属性; b) 如果找到该属性,则为非空查询字符串。我以前做过类似的自定义属性。检查可以在 Global.asax.cs 代码中进行,但必须足够晚,以便处理程序(标准 Web 表单 .aspx 页面的 Page 派生类)已被 asp.net 运行时识别。

            这将使您不必在任何有要求的页面上重复相同的代码。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2019-05-11
              • 2020-07-29
              • 1970-01-01
              • 1970-01-01
              • 2016-03-17
              • 2023-03-03
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多