使用后面的 C# 代码检查 URL 是否包含密钥,以便根据密钥更改页面 header

Using C# code behind to check if the URL contains a key in order to change the page header depending on what the key is

我可以从站点的不同位置访问我的一个页面。根据您的来源,URL 中可能有一把钥匙。因此,例如,单击 page1.aspx 上的按钮 1 将带您进入 page3.aspx。单击 page2.aspx 上的按钮 2 也将导致 page3.aspx 但页面加载后的最终 url 将是 page3.aspx?key=test 而当您单击按钮 1 时在 page1.aspx 上,url 就是 page3.aspx.

我想使用隐藏代码更改 page3.aspx 上的 header。如果 page3.aspx 上的 url 包含一个键,我希望 header 说 "This header modified due to key." 如果它不包含键,我希望它保持默认。当前默认为 "Default header."

这样的文本

到目前为止,我已经添加了将键附加到按钮 href 属性的代码。第 1 页的按钮指向 page3.aspx,第 2 页的按钮指向 page3.aspx?key=test,两个页面都会加载。但出于某种原因,我更改 header 的代码不起作用。这是我里面的东西 Page_Load:

if(!IsPostBack)
{
    if(Request.UrlReferrer != null && (Request.Url.AbsolutePath.ToLower().Contains("key=test")))
    {
        PageHeader = "This header modified due to key.";
    }
}

那没有用,所以我尝试将它从 !isPostBack 块中删除,然后将它放在 Page_Load 方法的开头。我也尝试使用 Contains("?key=ggg") 代替,但这并没有什么不同。我将不胜感激任何朝着正确方向的推动。

您可以使用 Request.QueryString 集合:

if(Request.QueryString["key"] != null)
  // do something here

或:

if(!String.IsNullOrEmpty(Request.QueryString["key"])