ASP.NET MVC 3 Представления и модель - PullRequest
0 голосов
/ 09 ноября 2011

У меня есть модель, которая называется Организация, и модель хранится в сборке, которая называется Модель. Требуется вставить организацию и обновить организацию.

Пара вопросов:

При вставке новой организации я хочу убедиться, что организация еще не существует, поэтому я вставил некоторую удаленную проверку. Затем я привязываю модель к представлению вставки.

Теперь, когда я создаю представление обновления, я должен использовать другую модель представления, которая удаляет удаленную проверку для дублирующих названий организации? Если это так, я не могу использовать свою базовую модель организации для представления обновлений, поэтому нужно ли мне тогда создавать 2 разных представления: одно для вставки, а другое для обновления? Если это так, то будет 2 вида, которые в основном одинаковы, но используют разные модели.

Может кто-нибудь помочь?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2011
  • Вопрос 1: проверьте правильность:

Если что-то не так, сделайте следующее:

If(isNotValid()){
    ModelState.AddModelError("Key", "The user name or password provided is incorrect.")
}

Ключ - это неправильное поле в вашем представлении.

  • Вопрос 2: Разница между созданием / редактированием

Вам следует использовать ту же ViewModel, потому что в вашем обновлении они все еще могут изменить «Название организации», и вам все равно следует проверить, является ли оно уникальным.

Но почему вы должны использовать ViewModel просто для проверки правильности? Есть ли причина, по которой вы не можете проверить уникальность имен организаций в вашем контроллере и сделать ModelState.AddModelError, когда он не уникален?

ViewModel - это когда вам нужно расширить страницу, например

  public class DashBoardViewModel
  { public List(Of Organisation) Organisation {get;set;}
    public List(Of Staff) Staff{get;set;}
    public List(Of Assignment) Assignments{get;set;}
  }

Выше был бы вымышленный DashBoardViewModel, где я показываю все Организации, Персонал и Назначения. ViewModel не содержит только один тип объекта, он содержит несколько.

И не забывайте, иногда, когда вам нужно добавить некоторые данные в View, вы можете просто использовать ViewData или ViewBag вместо создания ViewModel.

0 голосов
/ 09 ноября 2011

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

Однако подтверждение того, что имя не существует при обновлении организации, должно иметь дополнительное значение, потому что, если пользователь не изменяет имя организации, то по крайней мере одна запись в базе данных имеет это имя, которое обновляется, и проверка должна игнорироваться. эта запись.

Таким образом, если вы решите повторно использовать модель представления, проверка должна выполняться в соответствии с контекстом операции (вставка или обновление).

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