Привязка выпадающего списка выбранного значения со стороны контроллера в @Html.DropDownList

#javascript #jquery #asp.net-mvc #asp.net-mvc-4

#javascript #jquery #asp.net-mvc #asp.net-mvc-4

Вопрос:

Как правильно привязать выбранное значение к выпадающему списку, сгенерированному с помощью @Html.DropDownList из контроллера. т.е. Выбор выпадающего списка должен происходить со стороны контроллера. Вот как я сгенерировал выпадающий список.

@Html.DropDownList("CountryFilter", (IEnumerable<SelectListItem>)ViewBag.Coutries, "Select", new { id = "CountryFilter" })

Мой подход — я попытался обновить значение с помощью jquery с помощью селектора идентификаторов, но мне не удалось получить значение, которое нужно выбрать из контроллера в методе OnPageload следующим образом

 $(document).ready(function () {
        $('[data-toggle="tooltip"]').tooltip();
        $('#RoleFilter').val(@ViewBag.roleFilter.ToString());
    });
  

Это сработало, когда я жестко запрограммировал значение следующим образом

$('#RoleFilter').val("3");

Но я не смог получить значение из ViewBag.

Моя проблема может быть решена двумя способами

  1. Использование Jquery
  2. Привязка значения непосредственно к выпадающему списку.

Комментарии:

1. Используйте консоль. войдите в то, что есть вместо значения.

2. Я попытался использовать консоль. журнал при загрузке страницы строка становится $(‘#RoleFilter’).val(«). @….. Значения игнорируются.

Ответ №1:

Если ваш код работал, когда вы жестко кодировали значение, тогда попробуйте приведенный ниже код для получения значения в ViewBag

 $(document).ready(function () {
     $('[data-toggle="tooltip"]').tooltip();
     $('#RoleFilter').val(@Html.Raw(@ViewBag.roleFilter.ToString())); //Accessing the Json Object from ViewBag
  });