将href =“example”更改为href =“/ example”

时间:2013-07-12 21:19:07

标签: c# asp.net-mvc

我有一个模型,它从数据库返回html,我需要更改没有正斜杠的链接(但显然没有用http:或已经斜线触摸硬编码链接)

一个例子 href =“example”到href =“/ example”href中的值是未知的,可以是任何东西。 所以如果它只是一个没有斜线的单词添加它。如果它已经有http:或斜杠,请不要更改

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用Replace来完成这项工作?

您可以将其替换为href =“>> href =”/

String s = "href=\"example\"";
s.Replace("href=\"", "href=\"/");

那将返回

href="/example"

答案 1 :(得分:1)

以下是您可能需要做的事情的概述:

  1. 解析HTML。
  2. 找到所有链接。
  3. 每个链接:
    1. 将href属性值解析为URL。
    2. 如果它是相对的并且不以/或〜/开头,则前缀/并设置href属性。
  4. 将解析后的HTML转换回文本。
  5. 您可以使用HtmlAgilityPack和System.Uri进行解析。