Mam projekt MVC3, nad którym pracuję, który ma widok ze skojarzonym silnie wpisanym modelem widoku. Otrzymałem zadanie dodania opcjonalnej sekcji do tego widoku, która zawierałaby dane dla drugiego modelu, z których około połowa jest współdzielona z pierwszym modelem.
Moje pytanie brzmi, jaki jest najlepszy sposób na wdrożenie tego? Czy powinienem po prostu dodać obiekt, który reprezentuje model opcjonalny do modelu widoku i spróbować zmapować wartości z tego miejsca?
Jeśli zrobię to w ten sposób, jak mogę powiązać redaktorów z obydwoma modelami?
2 odpowiedzi
Dodanie opcjonalnego modelu do modelu widoku jest najlepszym wyborem, ponieważ w przeciwieństwie do ViewBag jest bezpieczny dla typu i nadal możesz korzystać z pomocników HTML. Pamiętaj tylko, aby przed renderowaniem sprawdzić drugi model pod kątem wartości NULL (ponieważ jest to opcjonalne). W przypadku udostępniania właściwości, Twój model widoku może mieć specjalne metody pobierania/ustawiania, które utrzymają obydwa modele zsynchronizowane wewnętrznie.
Myślę, że rozumiem, o co prosisz i w ten sposób udało mi się to w przeszłości.
Dodaj opcjonalny model jako parametr w modelu widoku, a następnie utwórz widok częściowy, który jest wpisywany do tego opcjonalnego modelu. Jeśli spełnione są kryteria, które pozwalają na wyświetlenie częściowego widoku, przekazujesz viewmodel.optionalmodel do tego częściowego widoku.
Trzeba tylko trochę uważać na nakładanie się parametrów, które powoduje bóle głowy (jak w przypadku zerowych referencji)
Podobne pytania
Nowe pytania
asp.net-mvc-3
ASP.NET MVC 3 to trzecia główna wersja rozszerzenia Model-View-Controller do tworzenia aplikacji internetowych w środowisku .NET.