Post Kendo Grid data to Controller in MVC
Try this..
@(Html.Kendo().Grid<Models.Occupation>()
.Name("Occupations")
.Columns(columns =>
{
columns.Bound(e => e.Name).ClientTemplate("#= Name # <input type='hidden' name='Occupation[#=index(data)#].Name' value='#= Name #' />");
columns.Bound(e => e.Industry).ClientTemplate("#= Industry # <input type='hidden' name='Occupation[#= index(data)#].Industry' value='#= Industry#' />");
})
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("Occupations_Read", "People", new { Name = Model.Name}))
)
[HttpPost]
public JsonResult PersonPost(Models.Person p)
{
//do stuff
}
you should be able to get values in Person. please add the following function.. *****************************Javascript***************************
//Index function for the WorkOrder Create view
function index(dataItem) {
var data = $("#GridName").data("kendoGrid").dataSource.data();
return data.indexOf(dataItem);
}
Shaz
You can use this script on your event:
function SaveUserProjectDetails() {
var postUrl;
var paramValue;
var gridData = $("#CustomerInfoKendoGrid").data("kendoGrid").dataSource.data();
postUrl = '@Url.Content("~/Billing/CustomerAccountManage/GetDepartmentWiseCategoryList")';
paramValue = JSON.stringify({ CustomerInformationList: gridData });
$.ajax({
url: postUrl,
type: 'POST',
dataType: 'json',
data: paramValue,
contentType: 'application/json; charset=utf-8',
success: function (result) {
console.log(result);
},
error: function (objAjaxRequest, strError) {
var respText = objAjaxRequest.responseText;
console.log(respText);
}
});
}
CustomerInformationList is your grid source list. For more details see this