#jquery #asp.net #ajax #asp.net-mvc #asp.net-core
Вопрос:
У меня есть эта таблица данных :
lt;table id="files" class="table table-striped"gt; lt;theadgt; lt;trgt; lt;thgt;Thumbnaillt;/thgt; lt;thgt;Namelt;/thgt; lt;thgt;Number of downloadslt;/thgt; lt;thgt;Genrelt;/thgt; lt;thgt;File Typelt;/thgt; lt;thgt;Published Onlt;/thgt; lt;thgt;Created Onlt;/thgt; lt;thgt;Authorlt;/thgt; lt;thgt;Actionslt;/thgt; lt;/trgt; lt;/theadgt; lt;tbodygt; @foreach (var file in Model.Files) { var thumbPath = "~/Thumbnails/" file.ThumbnailPath; lt;trgt; lt;tdgt;lt;img style="width:80px;height:80px;" src="@thumbPath" asp-append-version="true" /gt;lt;/tdgt; lt;tdgt;lt;a asp-controller="files" asp-action="details" asp-route-id="@file.Id" class="text-dark"gt;@file.Namelt;/agt;lt;/tdgt; lt;td id="downloads"gt;@file.DownloadCounterlt;/tdgt; lt;tdgt;@file.Genre.GenreNamelt;/tdgt; lt;tdgt;@file.FileT.FileTypeNamelt;/tdgt; lt;tdgt;@file.PublishedOnlt;/tdgt; lt;tdgt;@file.Yearlt;/tdgt; lt;tdgt;@file.Authorlt;/tdgt; lt;tdgt; lt;a asp-controller="files" asp-action="QrCode" asp-route-id="@file.Id" class="btn btn-primary"gt;Qr Codelt;/agt; lt;a asp-controller="files" asp-action="EditFile" asp-route-id="@file.Id" class="btn btn-primary"gt;Editlt;/agt; lt;/tdgt; lt;td style="display:none;" id="fileId"gt;@file.Idlt;/tdgt; lt;/trgt; } lt;/tbodygt; lt;/tablegt; }
я хочу отправить файл.Идентификатор для каждого файла в модели.Файлы в этом вызове ajax :
lt;scriptgt; $(document).ready(function () { $('#dateto').change(function () { var DateFrom = $('#datefrom').val(); var DateTo = $('#dateto').val(); var fileId = $('#fileId').val(); $.ajax({ type: 'GET', url: "Home/NumberDownloads/?dateFrom=" DateFrom "amp;dateTo=" DateTo "amp;fileId= " fileId, success: function (data) { console.log(data); }, error: function (error) { console.log(error); } }); }); }); lt;/scriptgt;
Таким образом,это не работает, fileId всегда равен 0, все остальное работает, но мне нужна ваша помощь в отправке fileId в вызове для каждого файла в файле Models.File.
Комментарии:
1. Вы дублируете идентификаторы, и это нехорошо, так как идентификатор должен быть уникальным. Если у вас есть несколько элементов с одинаковым идентификатором
fileId
, то$('#fileId')
будет возвращен только первый элемент2. Можете ли вы показать, пожалуйста, откуда «#дата «»#дата»? У вас есть файл 100s. Удостоверение личности, но никаких дат
3. даты-это не проблема,они из 2-х списков даты в этом представлении, но я не публикую их, потому что они работают, но моей функции в бэкэнде требуется идентификатор каждого файла в моделях. Файл
4. Вы должны опубликовать все , что вы опубликовали, не имеет никакого смысла
5. вы сможете понять меня лучше, если увидите ответ…
Ответ №1:
lt;scriptgt; $(document).ready(function () { $('#dateto').change(function () { var DateFrom = $('#datefrom').val(); var DateTo = $('#dateto').val(); var fileId = $('#fileId').html(); $.ajax({ type: 'GET', url: "Home/NumberDownloads/?dateFrom=" DateFrom "amp;dateTo=" DateTo "amp;fileId= " fileId, success: function (data) { $('#downloads').empty(); $('#downloads').append(data); console.log(data); }, error: function (error) { console.log(error); } }); }); }); lt;/scriptgt;
С помощью этого я достигаю того, чего хочу, но только для первого элемента Model.Files
.
Я хочу повторить этот вызов Ajax для всех элементов Model.Files
или, проще говоря, вызвать этот Ajax для каждой итерации цикла foreach.