Выбранное значение из выпадающего списка не работает как предполагалось MVC - PullRequest
0 голосов
/ 31 октября 2018

Перед этим я разместил вопрос о выборе выпадающего списка и отображении соответствующих данных. Я смог добиться некоторого прогресса, но у меня проблема в методе HttpGet .

PS: я заполняю раскрывающийся список таблицей из базы данных (функция getIDs делает это). Однако (функция getStuff) отображает данные с использованием View.

Модель класса:

public string R_ID {get; set;}

public string Summary{get; set;}

public int Estimate {get; set;}

public List<Hello> getIDs() //Populated via a table in the DB
        {
            var que = (from wre in db.Table
                       select new Hello{
                       R_ID = wre.ID
                       }).toList();
        }

Класс контроллера:

public ActionResult Index(string IDParam)
    {
        var model = test.getStuff(IDParam);
        ViewBag.IDs= new SelectList(test.getIDs(), "", "R_ID");
     }

[HttpGet]
public JsonResult getDataBySelectedID(string selectedId) //selectedID = 21
        {
            var data = (from wre in db.View
                          where wre.R_ID == selectedId //selectedId = 21 
                       select new Hello
                       {
                           R_ID = wre.ID
                           Summary = wre.Summary,
                           Estimate = wre.Estimate
                       }).toList();

            return Json(data, JsonRequestBehavior.AllowGet); //data = null; ???
        }

Просмотр класса:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
<script type="text/javascript">

        $(document).ready(function () {
              $("#IDs").on("change", function () {
                debugger;
                var selectedId = this.value;
                var url = "/Sample/getDataBySelectedID";

                $.ajax({
                    dataType: "json",
                    method: "GET",
                    url: url,
                    data: { selectedId: selectedId }
                });
            });
</script>

      @Html.DropDownList("IDs", ViewBag.Releases as SelectList)

Если вы посмотрите на комментарии в методе HttpGet (класс контроллера), то здесь возникает проблема.

Проблемы:

1) Переменная data не получает selectedID , следовательно, JSon ничего не возвращает.

2) Я меняю идентификаторы из выпадающего списка, но selectedID остается с тем же идентификатором. Например, в комментариях я использовал 21 , но если я выберу 22 * ​​1037 *, selectedID не изменится. Он остается на 21 .

data selectedId

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...