相同的查询字符串,但不同的链接
本文关键字:链接 字符串 查询 | 更新日期: 2023-09-27 18:07:20
我有一个场景,我的每个页面都有超过30-35个锚元素,每个锚元素都指向不同的URL。但我希望他们都有相同的查询字符串(谷歌分析UTM)。现在有趣的部分是URL不会每天都改变,它们是相同的,但查询字符串每天都在变化,我在后面的代码中计算它,这本身是好的。我想做的是以一种有效的方式添加计算的查询字符串,而不使用Javascript。我知道我可以将查询字符串值存储在一个隐藏的变量中,然后通过JS中的锚循环并添加查询字符串,但不幸的是,我没有自由在页面上使用JS。
我猜您可以遍历所有链接并附加查询字符串,也许在PreRender
事件期间。
var queryString = ComputeQueryStringForGoogle();
foreach (var control in this.Controls)
{
var link = control as Hyperlink;
if (link == null) continue;
link.NavigateUrl += queryString;
}
或者,如果你喜欢这种风格,
var queryString = ComputeQueryStringForGoogle();
foreach (var control in this.Controls)
{
if (control is Hyperlink)
{
((Hyperlink)control).NavigateUrl += queryString;
}
}
哎呀,为什么不采用第三种方法呢(我总是在学习新东西!)
var queryString = ComputeQueryStringForGoogle();
foreach (var control in this.Controls.OfType<Hyperlink>)
{
control.NavigateUrl += queryString;
}
或者如果你想尝试LINQ,那么
var queryString = ComputeQueryStringForGoogle();
this.Controls.Where(t => t is Hyperlink).Select(c => { c.NavigateUrl += queryString; return c }).ToList();
希望这没有过分。