- Home
- Forum
- ASP.NET Core - EJ 2
- [FromBody]DataManagerRequest in action controller
[FromBody]DataManagerRequest in action controller
Good morning,
is it possible to use GET method with DataManagerRequest?
I need to view filter grid in url but I can't at the moment because DataManagerRequest is in POST method action controller.
Is it possible something like the following code?
[HttpGet]
Public IActionResult Index (DataManagerRequest dm) {}
Or is there another way to use filter with GET method?
Thanks
SIGN IN To post a reply.
3 Replies
PS
Pavithra Subramaniyam
Syncfusion Team
June 3, 2019 06:18 AM UTC
Hi Mini,
Thanks for contacting Syncfusion support.
By default, while using UrlAdaptor for remote data, POST request will be sent for fetching the data from server. If you want to send the GET request for data fetching then you can use “WebApiAdaptor” . However you need to handle the Grid actions like filtering, sorting in server side and return the data as Items, Count pair. Please refer to the below documentation for more details.
Please get back to us if you need any further assistance on this.
Regards,
Pavithra S.
MD
Mini Dev
June 3, 2019 12:39 PM UTC
Hi,
how can I handle filter server-side?
I need get filter by query parameter and convert it to a strongly-typed model.
I need get filter by query parameter and convert it to a strongly-typed model.
Is there something ready? Or do I have to develop my own code to obtain that?
public IActionResult Test([FromQuery(Name = "$skip")] int skip, [FromQuery(Name = "$top")] int top, [FromQuery(Name = "$filter")] string filter)
{
}
filter is "(OrderId eq 477) and (CustomerId eq 135) and (startswith(tolower(CartCode),'235'))"
I need to have a model with the following property:
FieldName
Operator
FieldValue
Has Syncfusion made something of similar? Or do I have to create my custom model and valorized it?
PS
Pavithra Subramaniyam
Syncfusion Team
June 4, 2019 07:22 AM UTC
Hi Mini,
For WebApiAdaptor you need to handle the filtering and create the model by manually at server end point. We have prepared a simple sample for server side Menu filtering with WebApiAdaptor for example. Please refer to the below code example and sample link for more information.
[controller.cs]
|
public class OrdersController : Controller
{
// GET: api/Orders
[HttpGet]
public object Get()
{
var queryString = Request.Query;
var data = OrdersDetails.GetAllRecords().ToList();
string filter = queryString["$filter"];
string auto = queryString["$inlineCount"];
// filtering
if (filter != null)
{
var newfiltersplits = filter;
var filtersplits = newfiltersplits.Split('(', ')', ' ');
var filterfield = filtersplits[1];
var filtervalue = filtersplits[3];
if (filtersplits.Length == 5)
{
if (filtersplits[1] == "tolower")
{
filterfield = filter.Split('(', ')', '\'')[2];
filtervalue = filter.Split('(', ')', '\'')[4];
}
}
if (filtersplits.Length != 5)
{
filterfield = filter.Split('(', ')', '\'')[3];
filtervalue = filter.Split('(', ')', '\'')[5];
}
switch (filterfield)
{
case "CustomerID":
data = (from cust in data
where cust.CustomerID.ToLower().StartsWith(filtervalue.ToString())
select cust).ToList();
break;
}
}
// paging
int skip = Convert.ToInt32(queryString["$skip"]);
int take = Convert.ToInt32(queryString["$top"]);
if (auto == null)
{
return new { Items = data };
}
else
{
return take != 0 ? new { Items = data.Skip(skip).Take(take).ToList(), Count = data.Count() } : new { Items = data, Count = data.Count() };
}
} |
You can get the filter parameters in the queryString of the GET request and modify the above code as per your requirement.
Regards,
Pavithra S.
SIGN IN To post a reply.
- 3 Replies
- 2 Participants
-
MD Mini Dev
- May 31, 2019 08:28 AM UTC
- Jun 4, 2019 07:22 AM UTC