asp.net разбора MVC Autopper - PullRequest
       17

asp.net разбора MVC Autopper

1 голос
/ 09 ноября 2009

скажем, у нас есть что-то вроде этого

public class Person
{
   public string Name {get; set;}
   public Country Country {get; set;}
}

public class PersonViewModel
{
   public Person Person {get; set;}
   public SelectList Countries {get; set;}
}

можно ли использовать autopper для анализа от Person до PersonViewModel и обратно?

Ответы [ 3 ]

3 голосов
/ 10 ноября 2009

Не используйте AutoMapper для этого - оно того не стоит. Например, в случаях, когда у вас произошел сбой проверки и вы снова показываете форму - AutoMapper здесь не выполняется (обычно). Мы обычно идем двумя маршрутами:

  • Если список не зависит от контекста, создайте HtmlHelper, который запрашивает некоторый ISelectListProvider для элементов списка выбора: Html.DropDownList (). Вы бы использовали свой контейнер IoC, чтобы найти personListProvider, запросить список элементов и заполнить раскрывающийся список.
  • Если список зависит от контекста, просто создайте список в действии контроллера
2 голосов
/ 19 января 2010

если вы захотите, вы можете сделать это:

public class Person
{
   public string Name {get; set;}
   public Country Country {get; set;}
   public Country[] GetCountries 
   {
    ... add method for countries here
   }
}

Затем в вашей ViewModel вы можете получить список выбора данных из этой коллекции.

public class PersonViewModel
{
   public Person Person {get; set;}
   public Country[] Countries {get; set;}
   public SelectList Countries { get{ .. add new select list code here getting vals from Countries..}}
}

Опять же, это для контекстно-зависимых списков. Тем не менее, вы немного напутали здесь (должен ли человек получить список стран?)

2 голосов
/ 09 ноября 2009

Звучит так, как будто вы хотите отправить Person в представление через PersonViewModel, в котором есть вся информация о бонусах, необходимая для генерации и возврата нового (или обновленного) объекта Person.

Если это правильно, я не думаю, что вам нужен autopper вообще. Исходя из того, что я понимаю из автоматического инструмента, он предназначен для отображения коллекции связанных объектов в более тип модели состояния представления, но в этом случае вы отправляете Person клиенту и пытаетесь получить Person обратно. В этом случае кажется, что проще использовать вашу модель представления для заполнения страницы, но вместо этого пусть страница возвращает Person (или извлекает обновленного Person из модели представления для сохранения нескольких нажатий клавиш).


РЕДАКТИРОВАТЬ: При этом, да, вы должны быть в состоянии использовать Autopper для перемещения информации. Это просто ненужный слой для этого простого сценария.

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