Нет, Mvc Validator не будет читать метаданные вашей базы данных и выполнять проверку клиента.
Обычно вы создаете ViewModel / DTO и размещаете там проверки. Как и в случае с продуктом, посмотрите, как у полей есть атрибуты, они взяты из пространства имен System.ComponentModel.DataAnnotations и используются для украшения ваших моделей с помощью ограничений проверки.
public class Product
{
public int Id { get; set; }
[Required]
[StringLength(10)]
public string Name { get; set; }
[Required]
public string Description { get; set; }
[DisplayName("Price")]
[Required]
[RegularExpression(@"^\$?\d+(\.(\d{2}))?$")]
public decimal UnitPrice { get; set; }
}
Смотрите полный пример здесь:
http://www.asp.net/mvc/tutorials/older-versions/models-(data)/validation-with-the-data-annotation-validators-cs
Вы используете модель (как выше) в своем представлении, mvc выполнит проверки, даже на стороне клиента, а затем использует возвращенный экземпляр объекта для заполнения вашей модели сущности.
Если вы не хотите создавать отдельные классы и настаиваете на использовании Entities из EntityFramework, вы можете создать класс друзей.
См. Эту статью:
http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
Прокрутите вниз до => Но что, если мы используем графический инструмент для наших отображений ORM?
Существует Person
, и он связан с классом Validator с помощью tge MetadataTypeAttribute
Что-то вроде:
[MetadataType(typeof(PersonMetaData))]
public partial class Person
{
}
public class PersonMetaData
{
[Required(ErrorMessage = "Name is required.")]
public object Name;
}