У меня есть представление Razor, которое содержит сетку jQuery Datatables с флажком в каждой строке.Каждый флажок соответствует проекту, и пользователь выбирает, какие проекты он хочет видеть на печатной странице.Мне пришлось написать нанимать некоторый пользовательский код, чтобы получить все флажки на всех страницах, а затем я передаю эти выбранные значения в скрытое поле на модальном.Модальный режим появляется, когда пользователь выбирает «печать», и оттуда форма отправляется в контроллер.Затем контроллер передает значение в виде массива в службу, которая возвращает данные в представление.
Вот форма на модале:
@using (Html.BeginForm("GetPDFExport", "Project", FormMethod.Post, new { enctype = "multipart/form-data" , id = "PrintableProjectForm" }))
{
<input type="hidden" name="projectId" id="projectId" value="">
<Input type="submit" id="submitPrintableProject" value="Submit" />
}
и код, вызываемый для установки выбранных флажков в скрытое поле на модале:
$(document).on("click", "#printProject", function () {
//code to get checkboxes on all pages
var projectsGrid = $('#projectsGrid').dataTable();
var selectedProjects = [];
selectedProjects = projectsGrid.$('input[type="checkbox"]').serializeArray();
var projects = [];
$(selectedProjects).each(function (i, field) {
projects.push(field.value);
});
$('#projectId').val(projects.toString());
});
иподпись контроллера:
public ActionResult GetProjects(Guid[] projectId)
{
//service call that returns projects
}
Моя проблема в том, что я не могу получить значения из скрытого поля в контроллер, контроллер всегда показывает ноль.Первоначально я пытался сделать это с помощью вызова AJAX, который работал, но мы фактически перенаправили на страницу печати, что вызывало другие проблемы.Кажется, это должно быть просто, надеясь, что кто-то может мне помочь.
РЕДАКТИРОВАТЬ: Проводя много исследований, все говорят об использовании вызова AJAX, но я не останавливаюсь на той же странице.Мне нужно отправить данные на контроллер, получить проекты с сервера, а затем обработать представление с соответствующей моделью.Единственная причина, по которой я вообще использую jQuery - правильно получить все значения флажков.Это не может быть таким уникальным сценарием, я сумасшедший здесь?