Я пытаюсь точно определить, какую роль играют атрибуты при использовании свойств модели.Как работают атрибуты в MVC2
Например, если у меня есть модель Customer с атрибутом отображаемого имени, установленным в одном из свойств, то я могу получить доступ к значению атрибута отображаемого имени в шаблоне отображения по любой причине.
public class Customer {
[DisplayName("Customer Name")]
public string Name { get; set; }
}
< /Shared/DisplayTemplates/String.ascx --- Использует этот
<p><%=Model %> | <%=ViewData.ModelMetadata.DisplayName %></p>
-
Если же изменить атрибут DisplayName к ТипДанному, то MVC выглядит для шаблона также называемый ImageUrl.
public class Customer {
[DataType(DataType.ImageUrl)]
public string Name { get; set; }
}
< /Shared/DisplayTemplates/ImageUrl.ascx --- Использует этот
<img href="<%=Model %>" /> | <%=ViewData.ModelMetadata.DisplayName %>
Почему шаблон строки игнорируются? Я думал, что MVC сопоставляет типы данных свойств с именами шаблонов (например, первый пример), а атрибуты используются как метаданные в шаблонах.
Это все очень смущает!