Seshu B Ответов: 1

Значения, не отображаемые в listbox из базы данных с помощью mvc5


Всем привет
я хочу отобразить значения в listbox из базы данных и значения, полученные в методе controller json, но отображаемые как [Object Object], как это

Что я уже пробовал:

Контроллер :-
------------
public ActionResult GetColumnsByFavouriteReport(ReportsModel Model,string Columns)
{
    List<Report> ReportColumnsList = MCPAdminControllerPageObject.GetColumnsByReportName(Columns);
    return Json(ReportColumnsList, JsonRequestBehavior.AllowGet);
}



Смотреть :-
-----
 $(document).ready(function () {
      $('#FavouriteReports').change(function () {
          $.ajax({
              type: "POST",
              url: '@Url.Action("GetColumnsByFavouriteReport", "MCPAdmin")',
              data: { Columns: $('#FavouriteReports').val() },
              datatype: "json",
              traditional: true,
              success: function (data) {

                  $('#SelectedFields').empty();
                  $.each(data, function (key, val) {
                      $('#SelectedFields').append('<option id="' + key + '">' + val + '</option>');
                  })

              }
          });
      });

@Html.ListBoxFor(m => m.SelectedFields, new SelectList(new[] { "" }), new { @class = "form-control editable" })  


Модель
-----
public List<string> SelectedFields { get; set; }

F-ES Sitecore

Используйте debugging (ключевое слово "debugger") для проверки" data"," key "и"val". Поскольку ваш json - это список объектов, то "val", скорее всего, тоже будет объектом со свойствами, так что вам, вероятно, придется использовать" val.Something", а не" val " при создании вашего варианта. Мы не знаем, какие свойства находятся в "отчете", поэтому не можем дать вам конкретного ответа. Но какое бы свойство ни было на объекте, который вы хотите показать в выпадающем списке, это то, что вам нужно использовать, аналогично для "ключа", если это уместно.

Karthik_Mahalingam

проверьте, какое значение вы получаете в консоли

success: function (data) {
console.log(data)
}

Seshu B

Привет
значение теперь отображает listbox из БД
но отображение как учетной записи, электронной почты, темы
мне нужно показать вот так
Счет
EmailTo
Предмет

1 Ответов

Рейтинг:
0

Member 11261171

Проверьте ниже Решение :

var items;
$('#SelectedFields').empty();
//var items = '-Select Items-';
$.each(data, function (key, val) {
items += "<option value='" + key + "'>" + val + "</option>";
})
$('#SelectedFields').html(items);