我正在尝试用一个asp.net核心WebApi控制器来解决Datatables.net中的服务器端处理问题。
DT正在向控制器发送一个http-get,其中包含一些给定的参数,如下所示:Serverside-Description
我现在的问题是如何在控制器中获取searchvalue字符串参数的值。这是发送给控制器的值为"Hal“的参数:
但是正如你在这里看到的,search的值是null。
所有其他参数都填写在我的控制器中。
所以我认为问题出在搜索**价值**这件事上。如何告诉控制器读取此参数?
正如您在我的第二个屏幕截图中所看到的,我也尝试定义了从获取参数。但是,无论是FromHeader还是FromQuery都行得通。
感谢您的帮助和建议。帕特里克
发布于 2021-11-02 13:15:18
我已经想出了如何解决这个问题。
我简单地使用了HttpContext-Class来获得名为"searchvalue“的查询。
如下所示:
var searchWord = HttpContext.Request?.Query["search[value]"].ToString();
不知道这是不是干净的方式,但它是有效的。
发布于 2021-11-02 13:26:08
当我从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; }
}
https://stackoverflow.com/questions/69810222
复制相似问题