Advertisement

Stwórz profil

Musisz wpisać swoje imię
Musisz wpisać swoje nazwisko
Musisz wpisać poprawny e-mail
Musisz wpisać hasło (min. 8 znaków)
Musisz zaakceptować regulamin

Krzysiek Z. Programista ASP.NET

Temat: ASP.NET MVC3 przesyłanie danych z formularza DropDown list

Mam taki prosty formularz

<form action="CreateMenu2/" method="post">
Wybierz kategorie:
@Html.DropDownList("categorieId",
new SelectList(ViewBag.Categories as System.Collections.IEnumerable,
"categorieId", "categorieName", Model.ToList()), new { @class = "dropdown" })
Wybierz menu:

@Html.DropDownList("menuId",
new SelectList(ViewBag.Menu as System.Collections.IEnumerable,
"menuId", "menuName", Model.ToList()), new { @class = "dropdown" })
<input type="submit" value="przejdz dalej" />
</form>


Chciałbym te dane z dropdown list wybrane przez uzytkownika przesłać do kontrolera, w jaki sposób można pobrac te dane i je przeslac?

Proszę o pomoc
z góry dziękuję
13.04.2011, 16:42

Dariusz Jurojć Architekt
systemów/Programist
a, Vobis S.A.

Temat: ASP.NET MVC3 przesyłanie danych z formularza DropDown list

Domyślam się, że w kontrolerze CreateMenu2 istnieje metoda Index (lub podobna) służąca do wygenerowania tego formularza (GET). Powinieneś napisać drugą, która obsłuży metodę POST, coś w stylu:


[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(FormCollection formValues)
{
}


To podstawowa możliwość, dostęp do wartości pól uzyskujesz przez formValues["categorieId"]. Ale można jeszcze wykorzystać dodatkowe mechanizmy MVC (model binding) i użyć formy:


[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(string categorieId, string menuId)
{
}


Lub jeszcze bardziej "zautomatyzowanej" wersji


[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(Klasa obiekt)
{
}


Gdzie Klasa będzie miała zdefiniowane pola categorieId i menuId.

Zwykle u mnie metoda taka:
- sprawdza poprawność wprowadzonych danych,
- jeśli są niepoprawne - wyświetla informacje o błędach,
- jeśli są poprawne - zapuisuje do bazy i robi redirect na stronę informacyjną zgodnie z wzorcem Post/Redirect/Get .
13.04.2011, 17:53

Maciej Rychter Projektant/programis
ta .NET

Temat: ASP.NET MVC3 przesyłanie danych z formularza DropDown list

Yo,

ja proponuję podejść do problemu następująco (jeżeli oczywiście chcesz dogłębnie zrozumieć o co chodzi z tym MVC, a nie robisz jakiś bug-fixing z doskoku):
1. zaopatrzyć się w porządną angielskojęzyczną książkę o MVC 3
2. przeczytać ją od dechy do dechy chociaż raz.
3. teraz na zmianę czytać książkę + internety i kodować.

Ogólnie widzę, że u Ciebie to dopiero początek drogi. Nie jestem super doświadczony w MVC 3, ale ja zaczął bym od zrobienia sobie odpowiedniego ViewModelu czyli klaski która będzie odpowiadała polom formularza (np. imie, nazwisko, itp). Właściwości w tej klasie oczywiście odpowiednio otagowujesz korzystając z DataAnnotations (bez wnikania możesz zmusić endżin do tego aby pole "imie" w klasie formularza było na stronie wyświetlane pod nazwą przykładowo "Give me your fucking name". ViewModel oczywiście może wystawiać także słowniki do dropdownów w postaci propert. Potem robisz sobie przynajmniej 2 akcje w kontrolerze (jedną, która pokazuje formularz, a drugą która przyjmuje jako parametr metody właśnie instancję tego ViewModela). Potem leziesz mychą do drzewka solucji i w odpowiednim miejscu w katalogu Views klikasz prawym dodaj widok, pojawi się popup i tam wybierasz, aby stworzył Ci widok na podstawie wybranego ViewModela. Studio wtedy wygeneruje Ci wtedy piękny kodzik formatki gotowy do użycia. Easy, nie?

MVC3 to dobro i piękno, ale żeby z tego dobrze korzystać radzę Ci poczytać conieco bo polegniesz na najprostszych problemach.

Jeżeli chcesz zobaczyć mój przykładowy app z MVC 3 zapraszam na http://niesiedzpodblokiem.pl

---
Pozdrawiam,
MaćkoMaciej Rychter edytował(a) ten post dnia 19.02.12 o godzinie 22:23
19.02.2012, 22:21

Tomasz M. pan tom buduje dom

Temat: ASP.NET MVC3 przesyłanie danych z formularza DropDown list

Maciej Rychter:
Yo,

ja proponuję podejść do problemu następująco...

Yo,

Proponuję spojrzeć na datę posta. Dziś siępewnie kolega z tego śmieje ;]
19.02.2012, 22:23

Maciej Rychter Projektant/programis
ta .NET

Temat: ASP.NET MVC3 przesyłanie danych z formularza DropDown list

Ha,

faktycznie.
Ale się wczułem w rolę.

Może nie cała para poszła jednak w gwizdek ;)
19.02.2012, 22:28

Krzysiek Z. Programista ASP.NET

Temat: ASP.NET MVC3 przesyłanie danych z formularza DropDown list

dzięki za odpowiedź
problem faktycznie dawno rozwiązany, poczatki z mvc (:
28.02.2012, 13:03



Wyślij zaproszenie do