Как передать более одного параметра из Kendo.Grid в контроллер? - PullRequest
0 голосов
/ 28 июня 2019

В настоящее время я передаю один параметр в контроллер:

.Read(read => read.Action("EditingCustom_Read", "TicketReportProperty").Data("GetTicketId()"))

И в JavaScript:

function GetTicketID() {

    return {
        ticketID: $('#TicketID').attr('text'),
    };
}

И метод контроллера принимает int ticketId в качестве параметра

Теперь у меня есть другой параметр, который я хочу передать:

function GetReportID() {
    return {
        reportID: $('#ReportID').attr('text'),
    };
}

Я пробовал что-то подобное:

.Read(read => read.Action("EditingCustom_Read", "TicketReportProperty").Data("GetTicketID()").Data("GetReportID()"))

И метод контроллера принимает int ticketId, int reportId в качестве параметров.

Но это не работает.

Некоторое время я думал, что у меня есть функция, которая возвращает 2 параметра, соединенных через запятую, и передает их в контроллер аналогичным образом, а затем разделяет строку через запятую.

Примерно так:

 function GetData() {   
    return {
        data: $('#TicketID').attr('text') + "," + $('#ReportID').attr('text'),
    };
}

.Read(read => read.Action("EditingCustom_Read", "TicketReportProperty").Data("GetData())

И метод контроллера принимает string data в качестве параметров.

Не уверен, что это лучший способ сделать это?

Какое для этого лучшее решение?

1 Ответ

0 голосов
/ 28 июня 2019

Вы можете просто сгруппировать их в своей функции:

function GetTicketReadParms() {

    return {
        ticketID: $('#TicketID').val(),
        reportID: $('#ReportID').val()
    };
}

MVC будет сопоставлять их по имени для нескольких параметров или внутри класса модели будет соответствовать свойствам (удобно для большого количества параметров).

...