Akbari
Akbari

Reputation: 2409

Posting a model with Kendo Grid read action

I'm trying to add a search form to my page that updates the Kendo Grid. How should I send the Ajax call, so the ASP.NET MVC Model Binder be able to work?

This is my Ajax call:

var grid = $("#SearchSheetHeads").data('kendoGrid');
var data = $("#SearchSheet").serialize();
grid.dataSource.transport.options.read.url = "@Url.Action("SearchHeaderRead", "Sheet")";
grid.dataSource.transport.options.read.data = data;
grid.dataSource.transport.options.read.dataType = 'json';
grid.dataSource.transport.options.read.contentType = "application/json";
grid.dataSource.transport.options.read.type = "POST";
grid.dataSource.fetch();

I've also tried it by stringify method and removing contentType.

And this is my Action signature:

public ActionResult SearchHeaderRead([DataSourceRequest] DataSourceRequest request, SearchSheetHeaderViewModel model)

And the request looks like this:

enter image description here

Upvotes: 1

Views: 2707

Answers (2)

Nic
Nic

Reputation: 12855

Can't test it at the moment, but try something like this:

var grid = $("#SearchSheetHeads").data('kendoGrid');
var data = $("#SearchSheet").serialize();
$.ajax(
{
    type: 'POST',
    url: '@Url.Action("SearchHeaderRead", "Sheet")',
    dataType: 'json',
    data: { model: data },
    success: function (result) {
        grid.dataSource.data(result.Data);
    }
});

data: { model: data } is probably the important part for you.

Upvotes: 1

Amal Dev
Amal Dev

Reputation: 1978

Can you change the second line as given below and try it out

var data = $("#SearchSheetHeads").data('kendoGrid').dataSource.data();

Upvotes: 0

Related Questions