繁体   English   中英

Datatables.net 和 asp.net core WebApi get search[value]

[英]Datatables.net and asp.net core WebApi get search[value]

我正在尝试使用 asp.net 核心 WebApi-Controller 找出 Datatables.net 中的服务器端处理。

DT 正在向控制器发送一个 http-get,其中包含一些给定的参数,如下所述: Serverside-Description

我现在的问题是如何在我的控制器中获取 search[value] 字符串参数的值。 这是发送到控制器的值为“Hal”的参数:

搜索值发送到控制器

但是正如您在此处看到的,search 的值为 null。 搜索为空

所有其他参数都在我的控制器中填写。

所以我认为问题在于这个搜索**[值]**-事物。 我如何告诉控制器读取这个参数?

正如你在我的第二个屏幕截图中看到的,我也试图定义是从那里获取参数。 但是 [FromHeader] 或 [FromQuery] 是否有效。

感谢您的帮助和建议。 帕特里克

我已经想出了如何解决它。

我只是使用 HttpContext-Class 来获取名为“search[value]”的查询。

像这样:

var searchWord = HttpContext.Request?.Query["search[value]"].ToString();

不知道这是否是干净的方式,但它有效。

当我从 UI 发出请求时,我使用了 contentType: "application/json"

const table = $('#datatableDefault').DataTable({
    ajax: {
        url: '/endpoint_toServer',
        method: 'post',
        contentType: "application/json",
        data: function (d) {
            // Add your additional data if needed 
            d.fromDate = date[0];
            d.toDate = date[1];

            return JSON.stringify(d);
        }
    },
    serverSide: true,....

并在控制器中

 var queryString = new StreamReader(HttpContext.Request.Body).ReadToEndAsync();
 var requestParams = JsonConvert.DeserializeObject<CustomDataTableRequest>(queryString.Result);

public class CustomDataTableRequest: DatatableRequest
{
    
    public DateTime FromDate { get; set; }

    public DateTime ToDate { get; set; }

}

public class DatatableRequest
{
    public List<ColumnData> Columns { get; set; }

    public int Draw { get; set; }

    public bool SaveExcel { get; set; }

    public int Length { get; set; }

    public int Start { get; set; }

    public List<Order> Order { get; set; }

    public List<Search> Search { get; set; }
}

public class ColumnData
{
    public string Name { set; get; }
    public string Data { set; get; }
    public bool Searchable { set; get; }
    public bool Orderable { set; get; }
}

public class Order
{
    [JsonProperty(PropertyName = "column")]
    public int ColumnIndex { set; get; }

    [JsonProperty(PropertyName = "dir")]
    public string Direction { set; get; }
}

public class Search
{
    [JsonProperty(PropertyName = "value")]
    public string Value { set; get; }

    [JsonProperty(PropertyName = "regex")]
    public bool Regex{ set; get; }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM