Проверка формы в MVC 3 без указания авторства - PullRequest
0 голосов
/ 25 мая 2011

У меня есть несколько форм MVC 3, которые нуждаются в проверке формы в определенных полях (в основном для проверки пустой отправки).Некоторые из моих моделей представлений исходят непосредственно из классов ORM, поэтому у меня нет доступа к атрибутам обязательных полей.Нужно ли создавать дополнительные классы (т. Е. Создавать мега-ViewModel над классом ORM) для заполнения, чтобы я мог приписывать их или есть другие варианты (например, jQuery)?

Ответы [ 2 ]

3 голосов
/ 25 мая 2011

Некоторые из моих моделей представлений взяты непосредственно из классов ORM

Так что это не модели реальных представлений, а модели.Я бы порекомендовал вам определить конкретные модели представления для каждого вида / формы.Модель представления должна содержать только свойства, используемые представлением, и должна быть снабжена необходимыми атрибутами проверки для этого конкретного представления.Таким образом, вы можете справиться с проверкой, как вам нравится.Поэтому я советую всегда создавать и использовать модели представлений, которые специально адаптированы к требованиям данного представления, и сопоставлять их с моделями доменов.

Вы можете взглянуть на следующий ответ за некоторые идеи.

2 голосов
/ 25 мая 2011

Viewmodels - рекомендация - однако многие проекты по какой-то причине предпочитают не использовать их в качестве своей основной функциональности - возможно, простота.

Итак, чтобы конкретно ответить на вопрос - вы можете определить классы метаданных, которые затем будут содержать те же свойства, что и ваши существующие классы. Лучше всего использовать модели представлений, но вы действительно можете сделать это с вашими существующими моделями. Как то так

//Defines that you are going to use CustomerMetaData as the class to define the rules.
//This is named the same as your ORM class and doesnt need to contain anything in it.
[MetadataType(typeof(CustomerMetaData))]
public partial class Customer
{
//Don't need anything here
}

public class CustomerMetaData
{
  [Required()]
   public string CustomerName {get;set;}
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...