【问题标题】:C# MVC with jQuery Datatables: Retrieving variables from GET带有 jQ​​uery 数据表的 C# MVC:从 GET 检索变量
【发布时间】:2014-02-03 17:02:11
【问题描述】:

这是 Datatables.net 发送到我的 MVC 操作的查询字符串:

?sEcho = 8&iColumns = 6&sColumns =&iDisplayStart = 0&iDisplayLength = 10&mDataProp_0 = HomeCountry&mDataProp_1 = HostCountry&mDataProp_2 = YearOneRate&mDataProp_3 = YearOtherRate&mDataProp_4 = RateType&mDataProp_5 =控制与SSEARCH =&bRegex =假sSearch_0 =&bRegex_0 =假bSearchable_0 =真sSearch_1 =&bRegex_1 =假bSearchable_1 =真sSearch_2 =&bRegex_2 =假bSearchable_2 =真sSearch_3 = bRegex_3 =假bSearchable_3 =真sSearch_4 =&bRegex_4 =假bSearchable_4 =真sSearch_5 =&bRegex_5 =假bSearchable_5 =真iSortCol_0 = 1&sSortDir_0 = ASC&iSortingCols = 1&bSortable_0 =真bSortable_1 =真bSortable_2 =真bSortable_3 =真bSortable_4 =真bSortable_5 =假&_ = 1391446190711

&

这是我在 MVC 中的控制器操作标头:

public JsonResult GetData(int sEcho, int iDisplayStart, int iDisplayLength, string sSearch)

我的问题是:我如何获得这些变量(?):

bSortable_0=true&bSortable_1=true&bSortable_2=true&bSortable_3=true&bSortable_4=true&bSortable_5=false

注意bSortable_ 后面的数字可能是 0 到 5 或更多。

【问题讨论】:

  • 看看this,我觉得很有帮助。
  • 谢谢你,这让我得到了答案。

标签: c# asp.net-mvc datatables jquery-datatables


【解决方案1】:

解析查询字符串 -

NameValueCollection queryCollection = HttpUtility.ParseQueryString(Request.Url.Query);
var items = queryCollection
                 .AllKeys
                 .SelectMany(queryCollection.GetValues, (k, v) => new { key = k, value = v })
                 .Where(p => p.key.Contains("bSortable"))
                 .ToList();

还有输出 -

【讨论】:

    【解决方案2】:

    您可以从Request.QueryString 集合中获取所有查询字符串参数,包括您没有创建方法参数的那些。您可以在Request.QueryString.Keys 中找到各个密钥。使用它,您可以遍历集合并获取每个键/值对。

    【讨论】:

      【解决方案3】:

      还有其他几种方法。你可以这样做:

      string bSearchable0 = Request["bSearchable_0"];
      

      或者您可以创建一个类并让您的操作方法将其作为参数:

      public class jQueryDataTableParam
      {
          public int sEcho { get; set; }
          public int iDisplayStart { get; set; } 
          public int iDisplayLength { get; set; } 
          public string sSearch { get; set; }
          public bool bSearchable_1 { get; set; }
          public bool bSortable_1 { get; set; }
          //....
      }
      

      使用上面的让你的动作方法看起来更像

      public JsonResult GetData(jQueryDataTableParam param)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-08
        • 1970-01-01
        • 2010-10-09
        • 2021-10-30
        • 2010-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多