2012-04-01 5 views
1

У меня есть 2 пользовательских вида один для создания и один для редактирования. Я использую ту же модель просмотра клиента для обоих. Я хочу сделать поле «клиентское поле» обязательным для добавления, но не редактировать.ASP.NET MVC Использование моделей просмотра в разных представлениях

Если я поместил атрибут требуемого поля в свойство модели представления, тогда оба вида обозначают флажок «Клиент №» (как и следовало ожидать).

Есть ли встроенное решение, чтобы обойти эту проблему или мне придется создавать 2 отдельные модели просмотра, один с атрибутом и один без.

Благодаря

ответ

1

Это похоже на this question.

Я настоятельно рекомендую вам подобрать 2 модели для редактирования и создания действий. Это намного чище. Последний ответ в ссылке, которую я вам дал, делает обходной путь и отключает ошибки в ModelState.

0

Как требуется номер клиента для создания, но не редактирования?

Если вы его создадите, для этого потребуется номер, а когда вы его отредактируете, номер все еще там.

Возможно, вы можете удалить номер клиента при редактировании? Или вы хотите, чтобы клиент не был. быть не редактируемым при редактировании?

Если это последний, то вы можете не указывать клиенту по мере необходимости, вы просто показываете клиенту нет в своем представлении редактирования (а не в текстовом поле) и используйте скрытый ввод, чтобы содержать номер, чтобы он был отправлен.

0

Просто концепция типа предложения. Удалите требуемый атрибут проверки из вашей модели. В своем контроллере сделайте параметр необязательным и в зависимости от того, какое действие (Edit или Create), вы вручную добавите некоторый тип проверки.

Проверка jQuery может использоваться для подтверждения от клиента на основе ввода, если вы переходите к ручному маршруту.

Смежные вопросы