Я получаю ошибку здесь нет элемента viewdata типа ' ienumerable & lt;selectlistitem> dropdownlistfor
когда я пытаюсь сохранить данные из dropdownlist, он показывает следующую ошибку: - здесь нет элемента viewdata типа ' ienumerable dropdownlistfor
вот, y контроллер
[HttpGet] public ActionResult register(tbl_state t) { eBusPassSystemEntities db = new eBusPassSystemEntities(); IEnumerable<SelectListItem> item = db.tbl_state.Select(C => new SelectListItem { Value = C.state_name, Text = C.state_name }); ViewBag.state = item; return View(); } [HttpPost] public ActionResult Register(tbl_user u) { if (ModelState.IsValid) { using (eBusPassSystemEntities Db = new eBusPassSystemEntities()) { Db.tbl_user.Add(u); Db.SaveChanges(); } ModelState.Clear(); ViewBag.message = "Hello" + u.name + " Your Account Has been Succesfully created."; } return View(); } } }
вот мой взгляд
<div class="col-md-10"> @Html.DropDownListFor(Model => Model.state, (IEnumerable<SelectListItem>)ViewBag.state, "Select state", new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.state, "", new { @class = "text-danger" }) </div>
Что я уже пробовал:
я правильно получаю данные dropdownlist, я пытался, но не могу сохранить данные ,
в основном я пытаюсь извлечь состояние из таблицы и хочу сохранить состояние в таблице регистров.
Richard Deeming
Ты уверен, что наезд на правильные действия? У тебя нет другого register
действие без неиспользуемого параметра?
Попробуйте установить точку останова в register
действие и отладка вашего кода. Ломается ли отладчик внутри этого действия?
Richard Deeming
Я вижу, вы обновили свой вопрос.
Вы получаете ошибку при первой загрузке страницы или только после отправки формы?
(Я предполагаю, что это происходит только тогда, когда вы отправляете форму.)
Himanshu.A.Joshi
только после отправки
Himanshu.A.Joshi
помогите мне plzz, я пытаюсь решить эту проблему с двух дней , я новичок в mvc
Himanshu.A.Joshi
я попробовал, как вы сказали в post bak [httppost]
(
IEnumerable & lt;selectlistitem & gt; item = db.tbl_state.Select (C => new SelectListItem
{
Значение = С. state_name,
Текст = С. state_name
});
ViewBag.состояние = товар;
)
но все равно получаю ошибку в момент подачи формы:-
Исключение типа "система".ObjectDisposedException ' произошло в EntityFramework.dll, но не был обработан в пользовательском коде
Дополнительная информация: экземпляр ObjectContext был удален и больше не может использоваться для операций, требующих подключения.
Richard Deeming
Вы пытаетесь использовать eBusPassSystemEntities
экземпляр после того, как он был утилизирован. Это не должно быть возможно с кодом, который я опубликовал.
Himanshu.A.Joshi
так что же мне нужно для этого сделать?
вот я этот проект я использую entity framework
Richard Deeming
Попробуйте обновленный код из моего ответа.
Himanshu.A.Joshi
ладно я пытаюсь
Himanshu.A.Joshi
я попробовал ваш последний обновленный код: - но теперь он получает ошибку перед загрузкой страницы
все еще получаю ту же ошибку
ошибка:-
Исключение типа "система".ObjectDisposedException ' произошло в EntityFramework.dll, но не был обработан в пользовательском коде
Дополнительная информация: экземпляр ObjectContext был удален и больше не может использоваться для операций, требующих подключения.
Richard Deeming
А вы пробовали именно так код, который я отправил?
Или вы изменили его?
Himanshu.A.Joshi
именно тот код, который вы опубликовали
Richard Deeming
Ах, извините - вам нужен .ToList()
в запросе, в котором перечислены раскрывающиеся элементы.
Попробуйте обновленный код.
Himanshu.A.Joshi
ожидал куда?
Richard Deeming
Я обновил код в своем вопросе.
ViewBag.state = db.tbl_state.Select(C => new SelectListItem { Value = C.state_name, Text = C.state_name }).ToList();
Himanshu.A.Joshi
Большое большое спасибо, дорогая, ты спасла мой день, большое спасибо
ну, я новичок в mvc , я делаю этот проект в течение 10 дней, и мне нужно завершить его до 10 марта
это на ebuspassregistration and renewal system with online paymnent, я не знаю, как я это сделаю , но вы дали мне уверенность , я изучаю mvc из youtube и других онлайн-источников
у меня есть один вопрос
не могли бы вы сказать, пожалуйста, вот так, если мне нужно обновить город и штат как из выпадающего списка, какие вещи мне нужно добавить?
еще раз спасибо Мистер Ричард
Richard Deeming
Вам нужно будет поместить список городов в ViewBag
также:
ViewBag.city = db.tbl_city.Select(C => new SelectListItem { Value = C.city_name, Text = C.city_name }).ToList();
А потом использовать его вместе с
DropDownListFor
помощник:@Html.DropDownListFor(Model => Model.city, (IEnumerable<SelectListItem>)ViewBag.city, "Select city", new { @class = "form-control" })
Я бы определенно рекомендовал использовать отдельный метод для заполнения поисковых запросов, как во втором и третьем образцах моего ответа. Таким образом, вам нужно только добавить
ViewBag
код один раз. :)
Himanshu.A.Joshi
Эй, Ричард, как мне добраться до штата мудрый город?