powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / DropDownListFor
9 сообщений из 9, страница 1 из 1
DropDownListFor
    #39530548
Алексей Шм.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу победить ошибку.
Имею модель:
Код: c#
1.
2.
3.
4.
5.
 public class User
    {
      public Int32 RegionID { get; set; }
      public IEnumerable<SelectListItem> Regions {get;set;}
    }



Код: c#
1.
2.
3.
4.
5.
 public class Region
    {
        public Int32 RegionID { get; set; }
        public String NameRegion{ get; set; }
    }



Перед отправкой в представление создаю Regions
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  user.Regions = this.GetListRegions(user.RegionID);
  private IEnumerable<SelectListItem> GetListRegions(Int32 SelectedIDRegion)
        {
             List<Region> regions = du.SelectRegions();
            IEnumerable<SelectListItem> _regions = regions.Select(x => new SelectListItem
            {
                Selected = x.RegionID==SelectedIDRegion,
                Text = x.NameRegion,
                Value = x.RegionID.ToString()
            });
            return _regions;

        }



В представлении
Код: html
1.
  <tr><td>Регион</td><td> @Html.DropDownListFor(x=>x.RegionID, Model.Regions, new { @class = "ddl" })</td></tr>



На странице все отображается правильно, регион тот, который пользователь указал при регистрации. Но при смене значения и отправке формы в метод действия для обновления региона вылетает исключение: System.InvalidOperationException: Элемент ViewData с ключом "RegionID" имеет тип "System.Int32", но у него должен быть тип "IEnumerable<SelectListItem>".
Но при этом, значение все-таки модели передается и обновление успешно происходит. Как исправить?
...
Рейтинг: 0 / 0
DropDownListFor
    #39530568
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Шм. Элемент ViewData с ключом "RegionID" имеет тип "System.Int32", но у него должен быть тип "IEnumerable<SelectListItem>".
Но при этом, значение все-таки модели передается и обновление успешно происходит. Как исправить?

где код контролера? где ViewData ?
...
Рейтинг: 0 / 0
DropDownListFor
    #39530580
Алексей Шм.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

handmadeFromRuАлексей Шм. Элемент ViewData с ключом "RegionID" имеет тип "System.Int32", но у него должен быть тип "IEnumerable<SelectListItem>".
Но при этом, значение все-таки модели передается и обновление успешно происходит. Как исправить?

где код контролера? где ViewData ?

Какого именно контроллера? Где происходит обновление?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
[HttpPost]
        public ActionResult UpdateProfileClient(User user)
        {
            if (ModelState.IsValid)
            {
                DalUser du = new DalUser(ConfigurationManager.ConnectionStrings["connect"].ConnectionString);
                du.UpdateClientUser(user);
                Session["User"] = user;
                ViewBag.SussecUpdate = "Данные успешно обновлены!";
                return View("MyProfileClient", user);
            }
           }


C ViewData я не работаю.
...
Рейтинг: 0 / 0
DropDownListFor
    #39530589
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извини я с просони торможу. ошибка вываливает на посту?
...
Рейтинг: 0 / 0
DropDownListFor
    #39530593
Алексей Шм.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,
Да, при выводе инфы для редактирования все нормально связывается, в DropDownListFor обозначен тот регион, который у юзера (user.RegionID). При отправке же формы вываливается это. Но при этом в БД все обновляется, то есть метод действия отрабатывет.
...
Рейтинг: 0 / 0
DropDownListFor
    #39530594
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так у тебя логер есть в приложение? вылей в иис и там протестируй. ощущение что глюк вижлы
...
Рейтинг: 0 / 0
DropDownListFor
    #39531896
Алексей Шм.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuтак у тебя логер есть в приложение? вылей в иис и там протестируй. ощущение что глюк вижлы
Даже на хостинг залил - все одно..
...
Рейтинг: 0 / 0
DropDownListFor
    #39531922
Алексей Шм.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде победил. В post-методе контроллера вновь проинициализировал свойство regions (IEnumerable<SelectListItem> ).
user.Regions = this.GetSelectListRegions(user.RegionID);
Проблема исчезла.
...
Рейтинг: 0 / 0
DropDownListFor
    #39531926
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
логично, ты если б выложил Get запрос то я б тебе сразу сказал. но люди описывают проблему так будто примерно понимают что вот тут ошибка, но чаще не так
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / DropDownListFor
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]