#json #ajax #linq
#json #аякс #linq
Вопрос:
Я хотел бы отобразить список фотографий с именем файла из базы данных.
У меня есть следующий запрос:
var queryList = (from media in _context.Medias
where media.ProductId == Id
orderby media.MediaOrder
select new ProductMediaList
{
MediaName = "<div><img src='https://www.example.com/img/" media.MediaName "' class='img - thumbnail' style='width: 150px' /></div>"
}).ToList();
На мой взгляд:
$(".call_ajax").click(function () {
var id = $(this).attr("data-id");
$.ajax({
type: 'POST',
url: '',
dataType: 'json',
data: {
Id: id
},
success: function (data) {
detaildata = data.MediaName
},
error: function (ex) {
var r = "There is a problem";
alert("Message: " r);
}
});
return false;
});
Отлично работает с .FirstOrDefault(), но не может заставить его работать дальше.ToList()
Конечно, мы можем иметь html-часть в js, а не в запросе
Заранее благодарю за вашу помощь.
Комментарии:
1. Что вы подразумеваете под не работает? Пожалуйста, проверьте консоль вашего браузера на наличие ошибок. Ваш код javascript ожидает получения одного объекта со свойством
MediaName
и, вероятно, именно поэтому он работает с.FirstOrDefault()
Если вы используетеToList()
, эта строка больше не имеет смысла:data.MediaName
asdata
теперь является массивом. Вы должны выполнить итерациюdata
и получитьMediaName
для каждого элемента в массиве.2. спасибо @derloopkat. Это моя проблема. Как мне получить MediaName для каждого элемента в массиве?
3. Вы можете выполнить простой
forEach()
илиfor
цикл. Погуглите синтаксис.4. Спасибо @derloopkat. Когда я выполняю for (var m в data) { detaildata = detaildata data[m]; }, я получаю [объект Object][объект Object][объект Object][объект Object][объект Object]