Я читал одну из статей Брэда Уилсона:
Шаблоны ASP.NET MVC 2, часть 2: ModelMetadata
http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-2-modelmetadata.html
Предположим, что в моем приложении ASP.NET MVC 3 у меня есть следующая модель:
public class Contact {
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
А вот мое мнение:
@model MyApp.Models.Contact
<h2>Contact</h2>
@Html.EditorForModel()
и у меня есть Contact.cshtml
файл внутри ~/Views/Shared/EditorTemplates/
пути.
Мой вопрос заключается в том, как мне связаться с ModelMetadata
каждого свойства модели. Например, например:
Contact.cshtml
@model MyApp.Models.Contact
<input type="text" placeholder="@Model.FirstName.GetItsMetaData().Watermark"
value="@Model.FirstName" />
ПРИМЕЧАНИЕ: Метод GetItsMetaData - это то, что я полностью придумал. Я просто пытаюсь добраться до MedelMetadata собственности. Не имеет
быть таким.
EDIT
Я нашел другой похожий вопрос:
ModelMetadata для сложного типа в редакторе шаблонов в asp.net mvc
и ответ таков:
@{
var metadata = ModelMetadata
.FromLambdaExpression<TestThing, string>(x => x.Test2, ViewData);
var watermak = metadata.Watermark;
}
Но это довольно многословно делать это для каждого свойства моей модели, не так ли?