Передача дополнительных параметров в действие контроллера ASP.NET MVC из плагина jQuery Grid - PullRequest
1 голос
/ 13 февраля 2011

Я пытаюсь использовать плагин jQuery Grid с ASP.NET MVC для отображения данных. Представленные в Интернете примеры показывают, что подпись действия контроллера выглядит следующим образом:

public ActionResult SomeMethod(string sidx, string sord, int page, int rows) { }

Есть ли способ передать дополнительные параметры из различных полей ввода на странице?

Cheers, D.

ДОБАВЛЕНО: я еще не написал ни одного кода, но код на стороне клиента будет выглядеть примерно так:

jQuery(document).ready(function(){ 
      jQuery("#list").jqGrid({
        url:'/Entry/GridData/',
        datatype: 'json',
        mtype: 'POST',
        colNames:['Entry Date','Registration','Registered Name'],
        colModel :[
          {name:'EntryDate', index:'EntryDate', width:40 },
          {name:'Registration', index:'Registration', width:200 },
          {name:'RegisteredName', index:'RegisteredName', width:200 }],
        pager: jQuery('#pager'),
        rowNum:20,
        rowList:[5,10,20,50],
        altRows: true,
        sortable: false,
        viewrecords: true,
        caption: 'My first grid'
      }); 
    });

И код на стороне сервера что-то вроде:

public ActionResult GridData(string sidx, string sord, int page, int rows)
{
    //Some stuff to get data, which needs a couple of extra parameters on top of the ones in the signature
    return Json(dataCollection);
}

В действии GridData мне нужно еще несколько параметров для получения соответствующих данных. Как мне указать их в javascript, и как мне получить их в действии контроллера?

Ответы [ 2 ]

8 голосов
/ 13 февраля 2011

Вы можете использовать свойство postData:

$('#list').jqGrid({
    url: '@Url.Action("SomeMethod")',
    datatype: 'json',
    mtype: 'POST'
    postData: { 
        someParam1: $('#someInput1').val(),
        someParam2: $('#someInput2').val() 
    }
    ...
});

и в своем действии контроллера вы можете добавить этот параметр:

public ActionResult SomeMethod(string someParam1, string someParam2, string sidx, ...) { }
1 голос
/ 13 февраля 2011

Создайте другой метод действия, который соответствует назначению конкретного ввода и принимает аргументы, которые вы хотите принять. Если вам нужно вернуться к этому результату действия в конце обработки другого результата, вызовите RedirectToRoute

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...