.Net MVC 4 Просмотр движка WebForm - PullRequest
       27

.Net MVC 4 Просмотр движка WebForm

0 голосов
/ 18 октября 2011

Это довольно интересный вопрос, на мой взгляд. У меня строго типизированное представление с использованием движка представления WebForm, и я не знаю, решит ли моя проблема изменение бритвы.

ПРОБЛЕМА: У меня один вид со списком машин, поэтому типа IList <Car>. И у меня есть кнопка «Создать новый автомобиль» , которая всплывает, всплывающее окно является скрытой формой, и вы вызываете команду jQuery UI $('formName').dialog(), чтобы всплыть, эта форма имеет атрибуты новая машина, так что, вероятно, новый взгляд со строго типизированным Car. После заполнения формы база данных должна быть заполнена новым автомобилем, а список автомобилей должен быть обновлен с помощью Ajax. Основная проблема в том, что я не могу использовать помощники HTML для IList <Car> и для Car одновременно.

Вкратце: Что за тип строго для этого представления? Можно ли определить два вида и другой вызов с помощью всплывающего окна? Изменение на Razor решит мою проблему?

С уважением,

Тито Морайс

Ответы [ 2 ]

1 голос
/ 18 октября 2011

Может быть, не таким уж элегантным решением является создание модели сложного вида, такой как:

class ListAndCreate
{
 public IList<Car> AllCars {get;set;}
 public Car NewCar {get;set;}
}

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

Другой подход, который @Jonas упоминает, также верен и болееунифицированы.Вы можете создать частичное представление _CreateCar с типом Car, отобразить его с помощью Jquery / Ajax, чтобы загрузить его в диалоговое окно / всплывающее окно и иметь форму POST для метода Create(Car c) в вашем контроллере.

1 голос
/ 18 октября 2011

Не смешивайте представления для перечисления автомобилей и создания нового автомобиля вместе.

Например, вы можете создать всплывающее окно, которое динамически загружает частичное представление «_CreateCar», используя диалоговое окно jQuery или аналогичный компонент. Затем, когда частичное представление будет завершено, перезагрузите представление списка, используя другой вызов Ajax.

...