Как я могу отправить два модели от контроллера для просмотра с использованием того же действийPass Multiple Параметр в контроллере для просмотра в MVC3 Razor посмотреть Двигатель
ответ
Давайте предположим, что ваши две моделей являются экземплярами MyModel и MyOtherModel.
Я могу думать о двух вариантах:
- Pass MyModel как модель и положить MyOtherModel в ViewBag.
- Создайте класс MyBigModel с свойством MyModel и другим свойством MyOtherModel и передайте MyBigModel в качестве модели.
Вариант 1 действительно не является идеальным решением. Так как ваша модель должна относиться к вашему мнению (именно поэтому я предпочитаю имя ViewModel), я бы действительно пойти на вариант 2.
Вариант 2 будет выглядеть следующим образом:
public class MyBigModel
{
public MyModel { get; set; }
public MyOtherModel { get; set; }
}
Использование ViewModel - создать более модель, которая будет содержать обе модели, и отправить его для просмотра
public class MyCustomViewModel
{
public MyFirstModel First { get; set; }
public MySecondModel Second { get; set; }
}
и контроллер
public ActionResult Action()
{
MyFirstModel first = new MyFirstModel();
MySecondModel second = new MySecondModel();
MyCustomViewModel model = new MyCustomViewModel();
model.First = first;
model.Second = second;
return View(model);
}
Как правило, как следует из названия, вы должны использовать пользовательский ViewModel для каждого представления в своем приложении, а затем использовать такие инструменты, как AutoMapper, чтобы отображать эти модели представлений взад и вперед по моделям доменов. Просмотр моделей дает вам большую гибкость при составлении вашего представления, так как вы можете придать им любую форму и форму без изменения домена.
+1 для Automapper дает вам большую гибкость :) – Yasser
- 1. MVC3 Razor двигатель
- 2. KeyPairValue в ASP.NET MVC3 Razor
- 3. Как изменить переменную Session в JavaScript MVC4 Razor Посмотреть двигатель .vbhtml
- 4. Как список сохраняется в контроллере MVC3 с помощью Razor?
- 5. MVC3 (Razor) Json Получить десериализованные данные в контроллере
- 6. получить dropdownlist выбранное значение в контроллере MVC3 Razor
- 7. MVC3 Автокомплект и метод POST в контроллере
- 8. Переопределение местоположения просмотра для механизма просмотра Razor
- 9. MVC3 Razor SelectedValue в DropdownListFor
- 10. Механизм просмотра WebForms медленнее, чем механизм просмотра Razor в MVC4
- 11. Ajax в ASP.NET MVC3 Razor
- 12. Посмотреть критерии в контроллере Rails
- 13. ASP.NET Razor Посмотреть Хэши
- 14. Локализация типа проверки в asp.net MVC3 + Razor
- 15. AngularJS Multiple Посмотреть
- 16. Render Razor in Html.Raw() (MVC3)
- 17. Получить выпадающий список в MVC3 Razor
- 18. Pass $ название для просмотра
- 19. Динамическая форма в ASP.NET MVC3 Razor
- 20. Multiple DropDownList постбэк в MVC3
- 21. игры рамки: дата Pass для просмотра
- 22. Pass IEnumerable ViewModel для просмотра
- 23. MVC3 Razor Help required
- 24. Посмотреть двигатель не может найти мой взгляд
- 25. Параметр pass в chrome.commands
- 26. параметр Pass для EventHandler
- 27. Umbraco Razor - Pass Array to Javascript
- 28. Pass ViewModel для просмотра дважды
- 29. MVC3 Razor DropDownListFor Перечисления
- 30. Multiple параметр в PowerShell
Стоит упомянуть, вариант 1 очень плохой и не рекомендуется делать это. – archil
Вы правы, я добавлю это. –