Как вернуть JSON из действия

Как я могу создать объект JSON и вернуть JsonResult из своего действия (запрошено $.getJSON in Ajax)

Я пишу это в своем действии:

public JsonResult GetStudentInfo(int id)
    {
        var contactInfo = new Movie
        {
            FirstName = "Bob",
            LastName = "Cravens",
            Age = 23
        };
        return Json(contactInfo, JsonRequestBehavior.AllowGet);
    }

и это мой сценарий:

$("button").click(function () {
   var url = "/Home/GetStudentInfo";
   $.getJSON(url, { id:10 }, function (data) {
       $("#search").append("<div>" + data.FirstName + "</div>");
   });
});

но это не работает.


person Black_Hammer    schedule 17.11.2016    source источник
comment
Что не работает? Какие ошибки вы получаете в консоли браузера? Вы действительно используете метод контроллера?   -  person    schedule 17.11.2016
comment
Опубликуйте минимально воспроизводимый пример. Это не работает — бесполезное утверждение.   -  person mplungjan    schedule 17.11.2016
comment
у меня нет ошибки   -  person Black_Hammer    schedule 17.11.2016
comment
Идет ли он на дабуг?. Поставить точку останова   -  person Parth Trivedi    schedule 17.11.2016
comment
в консоли только у меня есть это предупреждение Использование getPreventDefault() устарело. Вместо этого используйте defaultPrevented.   -  person Black_Hammer    schedule 17.11.2016
comment
@Black_Hammer Пожалуйста, напишите также свой html. Если ваш тип кнопки — отправить, вы должны использовать e.preventDefault() в событии click   -  person Parth Trivedi    schedule 17.11.2016
comment
в моем html у меня просто есть элемент ‹div› и элемент ‹button› внутри него.   -  person Black_Hammer    schedule 17.11.2016
comment
Пожалуйста, проверьте stackoverflow.com/questions/26177305/   -  person Parth Trivedi    schedule 17.11.2016
comment
Включите файл jquery.js в _Layout.cshtml, а код JS должен быть внутри $(document).ready(function(){ });. Это работает.   -  person RonyLoud    schedule 17.11.2016
comment
Покажи свой хтмл.   -  person    schedule 17.11.2016
comment
это мой HTML-код ссылка   -  person Black_Hammer    schedule 17.11.2016
comment
Введите код в вопрос! (не в комментариях, и не изображениях). И у вас даже нет элемента с id="search"   -  person    schedule 17.11.2016
comment
:)))) да, это была ошибка. Спасибо за помощь, Стивен.   -  person Black_Hammer    schedule 17.11.2016


Ответы (1)


Событие нажатия кнопки не срабатывает. Нет селектора. Напишите свой код против идентификатора или класса кнопки. Также убедитесь, что необходимый файл jquery-{veraion}.js загружен.

Что-то подобное.

<input type="button" id="test" value="Click Me" />

и ваш js:

$(document).ready(function () {
        $("#test").click(function () {
            var url = "/Home/GetStudentInfo";
            $.getJSON(url, { id: 10 }, function (data) {
                $("#search").append("<div>" + data.FirstName + "</div>");
            });
        });
 })

Это работает для меня. Пожалуйста, проверьте.

person Anadi    schedule 25.11.2016