【发布时间】:2010-06-07 01:08:38
【问题描述】:
我有一个 ASP.NET 应用程序。在某些页面上,它需要与页面一起调用特定的查询字符串,以便处理数据。
哪里是检查所需查询字符串是否包含在 URL 中的最合适的位置,否则重定向到其他地方?
我只使用了一个母版页。
我们将不胜感激。
谢谢。
【问题讨论】:
标签: c# asp.net query-string
我有一个 ASP.NET 应用程序。在某些页面上,它需要与页面一起调用特定的查询字符串,以便处理数据。
哪里是检查所需查询字符串是否包含在 URL 中的最合适的位置,否则重定向到其他地方?
我只使用了一个母版页。
我们将不胜感激。
谢谢。
【问题讨论】:
标签: c# asp.net query-string
我会在每个需要查询字符串项的页面中检查 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");
}
}
【讨论】:
在使用它的页面上检查查询字符串。您希望尽可能将相关代码放在一起。
【讨论】:
越快越好 - 如果您真的只想重定向/转移到其他地方,为什么要花更多的时间在页面上?
【讨论】:
我在 Page_Load 处理程序中执行此操作,尽管它可能应该在 Page_Init() 中。
我认为,母版页代码直到 Page_Init() 之后才会执行。
【讨论】:
您可以为任何需要查询字符串的页面创建自定义属性,并将其放置在页面定义中。然后您可以检查:a)处理程序(页面)上是否存在该属性; b) 如果找到该属性,则为非空查询字符串。我以前做过类似的自定义属性。检查可以在 Global.asax.cs 代码中进行,但必须足够晚,以便处理程序(标准 Web 表单 .aspx 页面的 Page 派生类)已被 asp.net 运行时识别。
这将使您不必在任何有要求的页面上重复相同的代码。
【讨论】: