У меня есть такой режим просмотра, в котором я устанавливаю аннотации DataType для свойств.
public class Contact
{
[Required]
[Display(Name = "Your email address", Prompt = "Your email address")]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required]
[Display(Name = "Your question, suggestion or feedback...", Prompt = "Your question, suggestion or feedback...")]
[DataType(DataType.MultilineText)]
public string Message { get; set; }
[Display(Name = "Your file", Prompt = "Your file")]
[DataType(DataType.Upload)]
public HttpPostedFileBase File { get; set; }
}
Папка Shared \ EditorTemplates содержит эти шаблоны.
EmailAddress.cshtml
Upload.cshtml
MultilineText.cshtml
Object.cshtml
Шаблон Object.cshtml предназначен для синтаксического анализа и перенаправления свойств модели в их фактические шаблоны.
@model dynamic
@foreach (var prop in ViewData.ModelMetadata.Properties.Where(p => p.ShowForEdit))
{
if (prop.TemplateHint == "HiddenInput")
{
@Html.Hidden(prop.PropertyName)
}
else
@Html.Editor(prop.PropertyName)
}
И окончательный код актуален. Просмотр файла
@model PC.Models.Contact
@Html.EditorForModel()
Шаблоны EmailAddress.cshtml и Upload.cshtml выбраны и успешно применены, но MultilineText.cshtml нет, через MultilineText.cshtml установлено свойство. Есть идеи почему?