【问题标题】:How do I render an HTML link within a form label using a DisplayName attribute and/or LabelFor?如何使用 DisplayName 属性和/或 LabelFor 在表单标签中呈现 HTML 链接?
【发布时间】:2011-06-22 13:49:28
【问题描述】:

我有一个评论表单,我试图在其中呈现指向 HTML 标签内 Markdown 引用的 HTML 链接。我尝试在我的视图模型中添加指向DisplayName 属性的链接:

[DisplayName("Comment (you can format comments with <a href=\"http://daringfireball.net/projects/markdown/syntax\">Markdown</a>)")]
public string Body { get; set; }

这会导致以下显示:

我也尝试直接在视图中添加标签:

@Html.LabelFor(x => x.Comment.Body, "Comment (you can format comments with <a href=\"http://daringfireball.net/projects/markdown/syntax\">Markdown</a>)") 

但结果是可以理解的。

我意识到这是因为 MVC 是 HTMLEncoding 安全输出,但是有没有办法按标签关闭它,或者在这种情况下我只需要在我的视图中手动写出一个 HTML 标签?

【问题讨论】:

    标签: asp.net-mvc-3 rendering label razor data-annotations


    【解决方案1】:

    恐怕您将不得不手动执行此操作。所有 HTML 助手都只是对内容进行 HTML 编码。

    【讨论】:

    • 我认为可能是这样。不过谢谢!
    【解决方案2】:

    时隔 8 年,我遇到了这个问题,实际上您可以使用解决方法来解决这个问题。

    将模型中的代码更改为:

    [Display(Name = "Comment (you can format comments with <a href=\"http://daringfireball.net/projects/markdown/syntax\">Markdown</a>)")]
    public string Body { get; set; }
    

    将此添加到您的视图中:

    @Html.Raw(HttpUtility.HtmlDecode(@Html.LabelFor(m => m.Body).ToString()))
    

    Here is a fiddle 来看看。

    【讨论】:

      猜你喜欢
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-27
      相关资源
      最近更新 更多