誰かがこの動作を確認できるかどうか、または私が何か間違ったことをしたかどうか疑問に思っています。
通常、属性を指定すると、 MVC のDataType(DataType.MultilineText)
ような操作を行うと、DisplayTemplates フォルダー内の MultilineText.cshtml が使用されます。以下のコードのように、オーバーライドされたプロパティに属性が適用されて@Html.DisplayFor(m => m.Body)
いる場合、これは機能しないようです。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; }
}
}