Loading...
a.angelov avatar a.angelov 1316 Точки

Как е най-удачно да се подаде повече от 1 модел във view в ASP.NET MVC?

Как е най-удачно и правилно да се подаде повече от 1 модел към view в ASP.NET MVC?

- чрез view model клас, който има като пропъртита моделите, които ни трябват във view-то;

- чрез ViewBag / ViewData;

- чрез Tuple;

- друго.

Пример от последното домашно - в едно view трябва да листнем tweet-ове и същевременно да имаме форма за постване на тов tweet, която се байндва към модел за нов tweet. Аз съм го направил с Tuple, но ми се иска да чуя мнения, кое се препоръчва да се ползва.

Тагове:
0
C# MVC Frameworks - ASP.NET
petrovaliev95 avatar petrovaliev95 358 Точки

А защо е задължително да имаш и 2-рия байндинг модел. Може да го направиш с чист HTML.

0
a.angelov avatar a.angelov 1316 Точки

Не е ли ползването на моделите правилният начин спрямо чистия html?

В модела нали има валидация на пропъртитата, лесно се показват грешно попълнени данни в реално време в html-а преди изпращане на заявка, лесно се обработва после в контролера... Нали това е идеята на байндинг моделите.

0
petrovaliev95 avatar petrovaliev95 358 Точки

За валидацията си прав, че става лесно, но никой не е казал, че неможеш да си я напишеш сам на чист JavaScript. Колкото до обработката в контролера не ти пречи там да имаш байндинг модел.

0
petrovaliev95 avatar petrovaliev95 358 Точки

Иначе още едно решение което ми хрумва е да си направиш един общ модел които wrapp-ва другите 2 или повече и си работиш с тях във view-то, но зависи дали си струва това.

0
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

При търсене в интернет като цяло ми излезнаха сходни статии с възможните решение на въпроса ти. Повечето са с автори индийци, така че не се знае колко адекватни са. 

LINK

1
a.angelov avatar a.angelov 1316 Точки

И аз на тях попаднах и затова реших да питам тук... :) Дано се включи и някой от лекторите по въпроса...

0
ttitto avatar ttitto 1153 Точки

Не съм гледал още домашните от курса, но ми се струва, че байндването на модела за новия tweet трябва да е в PartialView, което се зарежда с AJAX (според това,което си обяснил). Тоест въобще не ти трябват два модела в едно вю.

Иначе от трите начина аз бих избрах обединен BindingModel. ViewBag i ViewData по принцип не се препоръчва да се ползват.

1
quickben avatar quickben 966 Точки

За ViewData съм чел на много места, че е перфектно да се използва само когато директно редиректваш към даден action и за нищо друго :) 

0
quickben avatar quickben 966 Точки

Според това което съм чел отговора е зависи :)

http://www.dotnet-stuff.com/tutorials/aspnet-mvc/understanding-best-way-to-use-multiple-models-in-asp-net-mvc

Тук поне пише предимства и недостатъци, че да можеш да прецениш за твойте нужди.

Аз засега клоня към partial view-та като начин да подавам два обекта на едно view :) (то реално е view във view и реално се избягва този "проблем", а не се решава)

http://www.pluralsight.com/courses/aspdotnet-bestpractices-models

Този курс в pluralsight е доста добър.

4
11/10/2015 19:13:47
ibakyrdjiev avatar ibakyrdjiev 172 Точки

Правиш един ViewModel class с всичките неща , които ти трябват и ги пръскаш по partial views.

ViewBag e dynamic и лесно може да те прецака за това не го ползвай

2
11/10/2015 20:31:06
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.