public class Auction
{
public string Title { get; set; }
public string category { get; set; }
}
i sterownik:
[HttpGet]
public ActionResult UserForm()
{
var categoryList = new SelectList(new[] { "auto", "elec", "games", "Home" });
ViewBag.categoryList = categoryList;
return View();
}
W Zobacz mam te linie:
<div class="editor-field">
@Html.DropDownListFor(model =>
model.category,(SelectList)ViewBag.categoryList)
@Html.ValidationMessageFor(model => model.category)
</div>
błąd pojawia się, gdy próbuję zapisać formularz jest:
Brak elementu ViewData typu "IEnumerable", który ma klucz "kategoria". Opis: Wystąpił nieobsługiwany wyjątek podczas wykonywania bieżącego żądania WWW. Zapoznaj się ze stosem stosu , aby uzyskać więcej informacji o błędzie i skąd pochodzi w kodzie.
Szczegóły wyjątku: Wyjątek System.InvalidOperationException: Brak elementu ViewData typu "IEnumerable" o kluczu "kategoria".
ja nie rozumiem, co jest problemem, ponieważ zrobiłem (lub próbował zrobić) wszystko to odbywa się w tym przewodniku: https://www.youtube.com/watch?v=7HM6kDBj0vE
Film można również znaleźć w ten link (rozdział 6 - automatycznie wiązania z danymi we wniosku): http://www.lynda.com/ASPNET-tutorials/ASPNET-MVC-4-Essential-Training/109762-2.html
dziękuję bardzo! To jest oczywiście poprawna odpowiedź. –
Czego nie rozumiem, dlaczego muszę odbudować w funkcji postu tę samą listę? Myślałem, że potrzebuję tylko jednego wyniku, który został wybrany przez użytkownika i który powraca w polu kategorii modelu. –
Pytanie brzmi: czy używasz zwracającego widoku, który ma '@ Html.DropDownListFor (model => model.category, (SelectList) ViewBag.categoryList)? Jeśli tak, to nie ma znaczenia skąd pochodzi. Liczy się to, że podasz widok z listą ** non NULL **. Jeśli pochodzi z posta, po napisaniu postu wartości już nie ma - po prostu dlatego, że nie "opublikowaliście" ich. –