【问题标题】:HTML tags showing in page title页面标题中显示的 HTML 标记
【发布时间】:2014-08-27 16:27:34
【问题描述】:

我正在根据页面模型中的属性动态设置页面标题。有时该属性包含 html 标记,例如 <i>Article Title</i>。当属性包含 HTML 标记时,它们会显示在页面标题中。我尝试用@Html.Raw 包围该物业,但没有帮助。如何确保标签不显示?

代码:

<head>
    <title>@Html.Raw(Model.Title)</title>
</head>

基于@Santiago's answer的工作代码:

<head>
@{
    string titleRaw = Model.Title;
    string htmlTag = "<[^>]*>";
    Regex rgx = new Regex(htmlTag);
    string titleToShow = rgx.Replace(titleRaw, blank);
}
    <title>@titleToShow</title>
</head>

【问题讨论】:

  • 你能展示你的代码吗?
  • @Html.Raw 不会从您的属性中消除标记。你需要自己擦掉它。过去,我为不应包含标记的标题使用了单独的属性。
  • 如果你将 regex 和 Html.Raw 结合起来,你会得到两者的最好的。干净安全的文本。

标签: asp.net-mvc razor title


【解决方案1】:

您可以尝试使用正则表达式吗?

<[^>]*>

取自:

Regular expression to remove HTML tags from a string

String target = someString.replaceAll("<[^>]*>", "");

假设您的非 html 不包含任何 并且您的输入 字符串结构正确。

更完整的解释可以在上面的 SO 链接中找到

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    相关资源
    最近更新 更多