ASP.NET MVC V2 - Классы друзей - PullRequest
6 голосов
/ 07 августа 2009

У кого-нибудь есть пример классов собеседников в ASP.NET MVC 2 Preview 1? Кажется, я не могу найти что-то об этом в MSDN, но согласно ScottGu они добавили функциональность для него в самой последней версии.

1 Ответ

10 голосов
/ 07 августа 2009

Я считаю, что вы ищете MetadataTypeAttribute. Это не что-то особенное для MVC, но это часть пространства имен DataAnnotations, представленного в 3.5. Это позволяет вам украшать членов частичного класса, внешнего по отношению к самому классу.

Например, если у вас был сгенерированный тип класса компонента с именем Customer и вы хотите добавить к нему атрибуты, вы можете создать новый фрагмент в том же пространстве имен и пометить его метаданным. Затем создайте класс Metadata с соответствующими атрибутами и украсьте их.

/* Generated class */
public partial class Customer
{ 
  public string Name { get; set; } 
}


/* MetadataType decorated class */
[MetadataType(CustomerMetadata)]
public partial class Customer
{ /* ... */ }


/* Metadata type */
public class CustomerMetadata
{
  [Required(ErrorMessage = "Name is required")]
  public string Name { get; set; }
}
...