Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MVC и сложная модель формы 
V
    Опции темы
Ruzl
Дата 17.5.2012, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 9.2.2008

Репутация: нет
Всего: 1



Доброго времени суток.
Столкнулся с следующей проблемой:
есть некая таблица, которая связана с другой таблицей. для примера: автомобиль и владелец. 
на форме создания необходимо отобразить поля автомобиля (вин, бренд, модель) и владельца (фио, год рождения и т.д.). По нажатию на кнопку сабмит контроллер должен сохранить в соответствующие таблици данные по автомобилю и владельцу.

в проекте использую EF и ASP MVC 3. пытаюсь сделать так:

Код

[HttpGet]
public ActionResult Create()
{
     Vahicle v = new Vehicle();
     Owner ow = new Owner();
     v.Owner=ow;
     return View(v);
}
[HttpPost]
public ActionResult Create(Vehicle v)
{
    Owner own = v.Owner;
   //тут v.Owner - пустой
}


Собственно вопрос в следующем - как правильно реализовать такой сценарий работы, при котором на форме одновременно может изменяться 2 модели ? 
Заранее благодарен.
PM MAIL   Вверх
Ruzl
Дата 18.5.2012, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 9.2.2008

Репутация: нет
Всего: 1



Нашел такой вариант:
Создаем новую модель, в которой будут храниться 2 объекта

Код

public class ViewModel
{
      public Vehicle Vehicle{get;set;}
      public Owner Owner{get;set;}

      ....
}


в конструкторе можно создавать эти объекты или передавать по ссылке.
Далее - для каждого из них делаем частичное представление, указывая в качестве модели ViewModel.
затем в методе, который обрабатывает Post, используем биндинг с префиксами:

Код

  [HttpPost]
  public ActionResult Create(ViewModel model,
             [Bind(Prefix = "Vehicle")] 
              Vehicle vehicle,
             [Bind(Prefix = "Owner")]
              Owner owner)
{

}


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0795 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.