.get List <string> из метода контроллера и отображения

0

Я новичок в ASP.NET MVC и jQuery, и я пытаюсь вывести следующее.

Попытка получить этот List<string> и отобразить его. И в ответе GET у меня есть следующий System.Collections.Generic.List 1 [System.String] ', который в этом случае также содержит "lable1".

Что я делаю не так? Что мне делать?

В контроллере:

public List<string> Search(string input, SearchBy searchBy)
{          
        Manager manger = new Manager();
        List<string> MyList = manger.GetData(input, searchBy);                                                         
        return MyList;
}

В представлении:

 $('#ii-search').click(function () {
        var number = $('#input').val();
        var typeEn = 'CCC';

        $.ajax({
            url: '@Url.Action("Search", "InitiateInspection")',
            data: { input: number, searchBy: typeEn },
            cache: false,
            success: function (data) {

                for (var i = 0; i < 4; i++) {

                    $('#lable1').html(data[i]);
                }                  
            }
        });

благодаря

Теги:
string
list
asp.net-mvc

2 ответа

3
Лучший ответ

Вы хотите вернуть JsonResult. Поэтому в своем контроллере попробуйте следующее:

  public JsonResult Search(string input, SearchBy searchBy)
  {          
        Manager manger = new Manager();
        List<string> MyList = manger.GetData(input, searchBy);                                                         
        return Json(MyList, JsonRequestBehavior.AllowGet);
  }

По сути, функция Json преобразует ваш список в объект json для вас.

  • 0
    Большое спасибо. Оно работает :)
  • 0
    @ user2382835 Нет проблем, рад, что смог помочь! Пожалуйста, примите ответ.
0

Это точно так же, как объяснил кенттам и, на ваш взгляд, сделать следующее:

$('#ii-search').click(function () {
    var number = $('#input').val();
    var typeEn = 'CCC';

    $.ajax({
        url: '@Url.Action("Search", "InitiateInspection")',
        dataType: 'json',
        data: { input: number, searchBy: typeEn },
        cache: false,
        success: function (data) {
            for (var i = 0; i < data.length; i++) {

                $('#lable1').html(data[i]);
            }                  
        }
    });
});
  • 0
    Большое спасибо очень полезное дополнение :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню