我想知道是否有人可以确认这种行为,或者我是否做错了什么。
通常,当您指定DataType(DataType.MultilineText)
属性并执行@Html.DisplayFor(m => m.Body)
MVC 之类的操作时,将使用 DisplayTemplates 文件夹中的 MultilineText.cshtml。DataType
当属性应用于覆盖的属性时,这似乎不起作用,如下面的代码所示。现在,如果我将属性移动到抽象类中的属性,它 MVC 确实使用 MultilineText.cshtml 显示模板。
public abstract class PostBase
{
[Required]
public virtual string Body { get; set; }
}
public class MessagePost : PostBase
{
[StringLength(500), DataType(DataType.MultilineText)]
public override string Body
{
get { return base.Body; }
set { base.Body = value; }
}
}