Отправка данных из вида в действие

При изменении состояния будут вызываться следующие методы жизненного цикла . Вы можете использовать предоставленные аргументы и текущее состояние, чтобы определить, изменилось ли что-то значимое.

componentWillUpdate(object nextProps, object nextState)
componentDidUpdate(object prevProps, object prevState)

0
задан Dale Burrell 7 March 2019 в 05:56
поделиться

1 ответ

Прежде всего, вы должны добавить значение опции к вашему выбору:

 <div class="form-group" style="margin: 0 auto;">
            <label for="sel1">Select a cat breed:</label>
            <select class="form-control" id="sel1">
                @foreach (var item in Model)
                {
                    <option value='@item.BreedName'>
                        @Html.DisplayFor(modelItem => item.BreedName)
                    </option>
                }
            </select>
        </div>

Затем измените ваш метод loadJasonData() на этот

function loadJasonData() {
    $.ajax({
        type: "POST",           
        url: "/CatCompare/CatDetails",
        cache: false,
        dataType: "json",
         data: { name: $("#sel1 option:selected").val() }
    })
}

в последнее удалить [HttpGet] в вашем действии

  [HttpPost]

  public ActionResult CatDetails(string name)
    {
        var breedName = db.Breeds.FirstOrDefault(b => b.BreedName == name);

        ViewBag.name = breedName.BreedName;
        ViewBag.lifeSpan = breedName.Lifespan;
        ViewBag.height = breedName.Height;
        ViewBag.weight = breedName.Weight;
        ViewBag.shortDescription = breedName.ShortDescription;
        return View();
    }

Примечание: Ваше действие возвращает представление . Если вы хотите вернуть json результат , вы должны использовать return Json(yourData);

0
ответ дан Fatikhan Gasimov 7 March 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: