Выглядит так, как будто ASP.NET MVC 2 Preview 1 только что был выпущен это означает, что способ выполнения работы может немного отличаться в зависимости от модели. Функция DataAnnotation
, позволяющая выполнять проверку свойств в ее модели, хороша, но я не уверен, где ее поставить.
Я создаю свои модели вручную, как рекомендовано в книге Стива Сандерсона о ASP.NET MVC , которая мне подходит идеально. Должна ли я иметь отдельную модель для данных POST, поступающих со страницы просмотра? Скажем, я создавал товар, моя основная модель может выглядеть так:
public class Product {
[Column(IsPrimaryKey = true, IsDbGenerated = true)] public int ProductID { get; set; }
[Column] public string ProductName { get; set; }
[Column] public string ProductDescription { get; set; }
[Column] public double ProductCost { get; set; }
}
Теперь пример Скотта дает нам DataAnnotations
, так что вы можете сделать:
public class Product {
public int? ProductID { get; set; }
[Required(ErrorMessage="Must enter a product name!")]
public string ProductName { get; set; }
public string ProductDescription { get; set; }
[Range(1, 500, ErrorMessage="Too expensive!")]
public double ProductCost { get; set; }
}
В последнем примере будет поле N 1015 *, которое может иметь значение NULL, поскольку оно будет полем с автоинкрементом в базе данных. Теперь оба эти примера будут содержаться в классах и, вероятно, с тем же именем. Лично я не думаю, что моя основная модель должна содержать эти аннотации, поскольку они не должны отвечать за проверку данных. Так я должен иметь отдельные пространства имен с классами в них с разными ролями?