Próbuję zrozumieć, jak najlepiej wdrożyć DropDownList
w ASP.NET MVC 2 przy użyciu pomocnika DropDownListFor
. To wieloczęściowe pytanie.Najlepszy sposób implementacji DropDownList w ASP.NET MVC 2?
Po pierwsze, jaki jest najlepszy sposób przekazania danych z listy do widoku?
- Przepuścić listę w modelu z właściwością
SelectList
zawierającego dane - Przepuścić listę w poprzez
ViewData
Jak uzyskać pustą wartość w DropDownList
? Czy powinienem go wbudować w SelectList
, gdy go tworzę, czy jest jakiś inny sposób, aby powiedzieć pomocnikowi, aby automatycznie utworzyć pustą wartość?
Na koniec, jeśli z jakiegoś powodu wystąpił błąd po stronie serwera i muszę ponownie wyświetlić ekran za pomocą DropDownList
, czy muszę ponownie pobierać wartości z listy, aby przejść do modelu widoku? Te dane nie są utrzymywane między postami (przynajmniej nie wtedy, gdy przekazuję je za pośrednictwem mojego modelu widoku), więc chciałem po prostu pobrać go ponownie (jest on buforowany). Czy poprawiam to poprawnie?
Problem z użyciem ViewData polega na tym, że kontroler jest o wiele trudniejszy w testowaniu. Jeśli zachowasz wszystko w ViewModelu, twoje testy będą znacznie lepsze. – Mac
W rzeczywistości nie różni się wcale - z ViewModel trzeba spelunk ViewData.Model, w przeciwnym razie po prostu poprosić o to za pomocą klucza. Bez żadnej różnicy ... –
http://stackoverflow.com/a/5177332/986862 –