如何用超链接替换名称

时间:2015-03-18 15:06:47

标签: c# asp.net replace

我写信是为了寻求一些帮助,我的c#替换功能如下。下面的tags()函数,用故事中的超链接替换标记的名称。当我调用story()方法时,我得到以下输出:

  

该清单包括:ECP 2013-5A C,两片HLA 2014-3A D,KEUKA 2013 D,KEUKA 2013-1X D,MVW 2013-1A D,WOODS 2013-10A D,WOODS 2014-11A D和WOODS 2014-11X D.过去三个月中只有一个 - 伍德2013-10A D在2月00日00日。

然而,当我调用tag()方法时,我得到以下错误输出:

  

该清单包括:HLA 2014-3A D,KEUKA 2013-1X D,WOODS 2013-10A D,WOODS 2014-11X D.过去三个月中只有一个 -

tags()函数的输出显示缺少的数据(即标签名称)和标签的名称没有正确超链接(即www.testdomain.com/data.aspx?searchName=HLA 2014-3A D> HLA 2014-3A D,

public string tags()
{

    string html = Story();

    DataTable tags = LoadAllTags();

    if (tags.Rows.Count > 0)
    {
        for (int i = 0; i < tags.Rows.Count; i++)
        {

            html = html.Replace(tags.Rows[i][0].ToString(), 
              "<a href=\"http://www.testdomain.com/data.aspx?SearchName=" + tags.Rows[i][0].ToString() + ">" + tags.Rows[i][0].ToString() + "</a>"
            );
        }
    }
    return html;
}

关于我可能出错的地方,任何进一步的建议都会非常有帮助。 谢谢

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的代码,您似乎无法阅读行中的所有相关代码。

尝试以下方法:

public string tags()
{
    string url = "http://www.testdomain.com/data.aspx";
    string html = Story();
    DataTable tags = LoadAllTags();

    if (tags.Rows.Count > 0)
    {
        foreach(var row in tags.Rows)
        {
            foreach(var column in tags.Columns)
            {
                var tag = column.ToString();
                var path = string.Format("{0}?SearchName={1}", url, HttpUtility.UrlEncode(tag);
                var link = string.Format("<a href=\"{0}\">{1}</a>", path, tag);
                html = html.Replace(tag, link);
            }
        }
    }
    return html;
}