从Model&返回HtmlString在视图中显示

时间:2012-12-05 16:19:08

标签: asp.net-mvc asp.net-mvc-3 razor html-helper mvchtmlstring

让我先说明我知道我可以使用 HTML.Raw()来显示字符串中包含的HTML。但是,我认为MVC的目的是分离代码逻辑并允许前端开发人员专注于UI而不是逻辑。因此,我尝试将模具中的所有内容完全按照我希望的方式传递。

这让我想到了我的问题。我有一个包含地址的模型。我编写了一个函数,它返回几个不同版本的地址(单行,两行,多行),我将它们设置为 HtmlString 对象。

public HtmlString TwoLine { get { return ReturnFullAddress(2); } }
/* function removed for brevity */

然而,当我写下面的剃刀代码时:

@Html.DisplayFor(modelItem => item.Address.TwoLine)

视图中未返回任何文本。当我调试它时,在Address.TwoLine中有一个正确分配的值,但它在{}之内(我认为这很奇怪)。

我如何使这项工作,或为什么这不起作用?

1 个答案:

答案 0 :(得分:2)

DisplayFor()不知道如何处理HtmlString属性 您应该直接打印该值:@Model.Address.TwoLine