Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在运行时替换href值_C#_Asp.net - Fatal编程技术网

C# 在运行时替换href值

C# 在运行时替换href值,c#,asp.net,C#,Asp.net,我的主网页中有许多html标记。我想在运行时使用代码替换它们的HREF值。怎么做?所有a标记都使用runat=“server”进行标记。您可以使用AncorTag HTML控件的属性对其进行更改 像这样: <a id="anchor1" runat="server"></a> private void UpdateTags(Control page) { foreach (Control ctrl in page.Controls)

我的主网页中有许多html标记。我想在运行时使用代码替换它们的HREF值。怎么做?所有a标记都使用runat=“server”进行标记。

您可以使用AncorTag HTML控件的属性对其进行更改

像这样:

<a id="anchor1" runat="server"></a>
private void UpdateTags(Control page)
    {
        foreach (Control ctrl in page.Controls)
        {
            if (ctrl is HtmlAnchor)
            {
                ((HtmlAnchor)ctrl).HRef = "myNewlink";
            }
            else
            {
                if (ctrl.Controls.Count > 0)
                {
                    UpdateTags(ctrl);
                }
            }
        }
    }

您应该给它一个Id,然后更改
Href
属性

<a runat="server" id="link1">link 1</a>

您必须迭代
ControlsCollection
中的所有控件,并更新
Href
类型为
HtmlAnchor
的所有控件的属性,如下所示:

<a id="anchor1" runat="server"></a>
private void UpdateTags(Control page)
    {
        foreach (Control ctrl in page.Controls)
        {
            if (ctrl is HtmlAnchor)
            {
                ((HtmlAnchor)ctrl).HRef = "myNewlink";
            }
            else
            {
                if (ctrl.Controls.Count > 0)
                {
                    UpdateTags(ctrl);
                }
            }
        }
    }

您还可以创建一个CustomControl,扩展
超链接
-类,并在其中加入一些逻辑。 我们将其用于自定义超链接,以向某些链接添加跟踪数据

private void UpdateTags(Control page)
    {
        foreach (Control ctrl in page.Controls)
        {
            if (ctrl is HtmlAnchor)
            {
                ((HtmlAnchor)ctrl).HRef = "myNewlink";
            }
            else
            {
                if (ctrl.Controls.Count > 0)
                {
                    UpdateTags(ctrl);
                }
            }
        }
    }