ViewModel中的HTML.Raw等效DataAnnotation

时间:2013-12-20 12:02:32

标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor

在ViewModel中是否有与@Html.Raw(Model.Property)等效的注释?

我尝试使用[DisplayFormat(HtmlEncode=false)]但没有成功创建HTML标记(<b><span>),而是将其显示为文本。

2 个答案:

答案 0 :(得分:3)

你可以使用UIHint来创建一个模板Views\Shared\DisplayTemplates\Html.cshtml来实现这一点:

@model string
@Html.Raw(Model)

然后在你的模特上:

[UIHint("Html")]
public string MyHtml {get; set;}

然后可以在所有其他视图中输出:

@Html.DisplayFor(m => m.MyHtml)

答案 1 :(得分:2)

将属性设为IHtmlString(您可以使用MvcHtmlString实施)而不是string

public class MyModel 
{
     public IHtmlString Property { get; private set; }
     public MyModel(string property)
     {
          Property = new MvcHtmlString(property);
     }
}