【问题标题】:jqGrid GET and POST mtype in MVCjqGrid GET 和 POST MVC 中的 mtype
【发布时间】:2013-05-01 15:52:29
【问题描述】:

我刚刚读到 jqGrid 中的 mtype 选项将决定我们将如何进行 ajax 调用。 GET 将检索数据,POST 将发送数据。

当我加载我的 jqGrid 时,我想在我的 js 文件中将一个额外的参数传递给我的控制器:

url: 'Controller/Action1',
mtype: 'POST',
datatype: 'json',
postData: { ParentId:  selectedParentId },

在我的控制器中,我有这个:

public JsonResult Action1(ParentId)
{
 // Retrieve child properties from db using ParentId
 // Return json result
}
  1. 如果我的 mtype 是 POST,我的 jqGrid 将如何加载返回的 json 数据?
  2. 在我的操作中,我是否还能将 jqGrid 的其他选项作为参数,如排序顺序、选择的页面大小?我可以在我的操作中使用this.Request.Param["sidx"] 之类的东西吗?

【问题讨论】:

    标签: model-view-controller jqgrid mvcjqgrid


    【解决方案1】:
    1. mtype 选项定义了 HTTP 请求的类型:

      • 如果设置为 GET(默认情况下):请求参数附加在地址栏中的 http 查询中,如下所示 .../Controller/Action1?ParentId=selectedParentId
      • 如果设置为POST,发送http查询时隐藏请求参数
        实际上,这两种方法以不同的方式发送相同的参数。因此,使用 GET 或 POST 方法加载返回的 JSON 数据有任何不同
    2. 当然,您也可以将 jqGrid 的其他选项作为排序顺序等参数获取

    对不起我的英语不好

    【讨论】:

      【解决方案2】:

      在您的控制器中,您将获取 jqGrid 传递给您的所有参数:

      public ActionResult GetGridData(string sidx, string sord, int page, int rows, bool _search, string filters, string ParentId)
      {
       ....
       int totalRecords = wholeList.Count();
       var pagedQuery = wholeList.OrderBy(sidx + " " + sord).Skip((page - 1) * rows).Take(rows).ToList();
      
              var jsonData = new
              {
                  total = (totalRecords + rows - 1) / rows,
                  page = page,
                  records = totalRecords,
                  rows = (
                  from tempItem in pagedQuery
                  select new
                     {
                      cell = new string[] {
                          tempItem.ToString(),
                          ...
      
      
                     }
                  }).ToArray()
      
       return Json(jsonData, JsonRequestBehavior.AllowGet);
      }
      

      您可以使用额外的参数来更改您反馈给 jqGrid 的内容,您还将看到您正在传入并使用这些参数来处理分页。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-30
        • 2021-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多