让我先说明我知道我可以使用 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中有一个正确分配的值,但它在{}之内(我认为这很奇怪)。
我如何使这项工作,或为什么这不起作用?
答案 0 :(得分:2)
DisplayFor()
不知道如何处理HtmlString
属性
您应该直接打印该值:@Model.Address.TwoLine