Параметр в контроллере всегда нулевой - PullRequest
0 голосов
/ 04 мая 2018

Параметр, который я отправляю контроллеру, всегда равен нулю.

   $("#btnSilviPrioInvoiceGenerate").on("click", function (e) {

            var idSelector = function () { return this.id; };
            var selectedDamages = $(":checkbox:checked").map(idSelector).get();
            console.log(selectedDamages);

             var action_url = '@Url.Action("GenerateInvoiceDamage", "TimberMonitor", new { Area = "", ids = "CMP_ID" })';
             action_url = action_url.replace("CMP_ID", selectedDamages);
            window.location = action_url;
        });

Мне нужно отправить список selectedDamages (который содержит список идентификаторов) в контроллер, но в контроллере параметр id всегда равен нулю.

enter image description here

Я попытался изменить в методе контроллера тип параметра на List<string>. Я проверил, чтобы было одинаковое имя для параметра в контроллере и в представлении тоже. что я могу проверить, чтобы заставить его работать?

1 Ответ

0 голосов
/ 04 мая 2018

Поскольку значение selectedDamages является массивом, вам нужно сгенерировать URL, где строка запроса равна ?ids=x&ids=y&ids=z, а параметр в вашем методе должен быть IEnumerable<T>, например

public ActionResult GenerateInvoiceDamage(IEnumerable<string> ids)

Для создания строки запроса вы можете использовать функцию jQuery param()

var baseUrl = '@Url.Action("GenerateInvoiceDamage", "TimberMonitor", new { Area = "" })';
var url = baseUrl + '?' + $.param({ ids: selectedDamages }, true);
location.href = url;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...