Edit this page

Common Issues


Grid Performs HTTP GET Requests instead of POST

By default, the Kendo UI Grid for ASP.NET MVC makes POST requests when configured for Ajax binding. This is implemented by a custom DataSource transport and schema. Those are defined in the kendo.aspnetmvc.min.js.


Make sure this file is included after the other Kendo UI JavaScript files. For more information, refer to the ASP.NET MVC introductory article.

The example below demonstrates the correct order of JavaScript files.

<script src="/Scripts/kendo.all.min.js"></script>
<script src="/Scripts/kendo.aspnetmvc.min.js"></script>


Learn about the Kendo UI components for React which are delivered by the Inputs package.

Ajax-Bound Grid Does Not Populate

There are various reasons which may cause this.


Below are listed the steps for you to follow when troubleshooting this issue.

Step 1 Use your browser developer console to check for any JavaScript errors. In most browsers pressing F12 displays the developer console. Address all JavaScript errors.

For more information, refer to the Telerik UI for ASP.NET MVC troubleshooting article.

Step 2 Check the Network—or Net in Firebug—tab of the browser developer console. Look for a failed HTTP request for the action method configured via the DataSource Grid setting.

  • HTTP status code 401 indicates that the required authentication has failed or has not been provided yet.
  • HTTP status code 403 indicates that the request is not authorized. Perhaps the current user does not have the required permissions.
  • HTTP status code 404 indicates that the requested URL cannot be found. Check if the controller and action names are spelled correctly.
  • HTTP status code 500 indicates that a server error occurred while processing the request. Check what the server response is. In most cases, it will contain the full .NET stacktrace. If the reason for the exception is not clear, put a break-point in the action method and break with the debugger. Also, refer to the section on well-known exceptions.

Step 3 Check if you are using the ToDataSourceResult extension method. That method returns the data in the JSON format expected by the Kendo UI Grid. For further instructions, refer to the article on Grid Ajax binding.

Client-Side Events Are Not Raised in Server-Bound Mode

When configured for server binding, the Kendo UI Grid for ASP.NET MVC does not fire all client-side events.


For more information on how to resolve this issue, refer to the article on server binding of the Grid.


Grid Fails to Update Dates and Numbers When Current Culture Is Not en-US


Make sure the JavaScript file for that culture is included. For additional information on this issue, refer to this section.

Column Templates Are Not Displayed

Case 1 The column template is not displayed if the server template is set but the Grid is configured for Ajax binding.


Set the ClientTemplate as well.

Case 2 The column template might also not be displayed if only the client template is set but the Grid is configured for server binding.


Set the Template as well.

"X" DataSource Configuration Option Is Not Available

Not all settings of the DataSource are exposed through the DataSource fluent API.


To gain full control over the DataSource, consider using the CustomDataSource fluent API or the client-side version of the Kendo UI Grid.

Grid Fires Create Actions instead of Update Actions

If an ID value is not set for a given data item, the Grid treats it as new and calls the Create action.


The ID value should be non-default for the used data field type.

Known Exceptions

Circular Reference Detected While Serializing an Object of Type

The reason for this exception is that the JavaScriptSerializer class used by the Json method cannot serialize object graphs which contain circular references (refer to each other).


Use View Model objects and avoid serializing the properties which create the circular reference. For further information on this issue, refer to the article on avoiding circular reference exceptions.

JSON JavaScriptSerializer Serialization or Deserialization Error

This exception is thrown when the length of the JSON response exceeds the default MaxJsonLength.


Below are listed some of the possible solutions for you to apply when resolving this issue.

Option 1 Enable paging by calling the Pageable method.

Option 2 Serialize only the required properties of your model by using a View Model.

Option 3 Manually serialize the DataSourceResult.

    public ActionResult Read([DataSourceRequest] DataSourceRequest request)
        var data = GetData();
        var serializer = new JavaScriptSerializer();
        var result = new ContentResult();
        serializer.MaxJsonLength = Int32.MaxValue; // Whatever max length you want here
        result.Content = serializer.Serialize(data.ToDataSourceResult(request));
        result.ContentType = "application/json";
        return result;

Sensitive Information Error Message

An exception that a request has been blocked because sensitive information could be disclosed to third-party web sites when this is used in a GET request would be thrown when the kendo.aspnetmvc.min.js is not included or is included before the kendo.all.min.js.

Yet another reason is that you explicitly specified that the Grid should make HTTP GET requests via the Type setting but did not allow HTTP GET requests.


Allow GET requests.

// View

// Omitted for brevity.
.DataSource(dataSource => dataSource.Ajax()
    .Read(read => read.Action("Read", "Home").Type(HttpVerbs.Get)) // tell the DataSource to make GET requests
// Omitted for brevity.

// Controller
public ActionResult Read([DataSourceRequest] DataSourceRequest request)
    var data = GetData();

    return Json(result.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);

Limited Usage of Templates

An exception that templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions can occur if an editable Grid is bound to a DataTable or DataSet. The reason is that the ASP.NET MVC EditorFor method does not support DataTable.


Use a pop-up edit form with a custom editor template.

For more information on how to resolve this issue, refer to the resources listed below.

Invalid Template Error When Nesting Client Templates

The Kendo UI widgets are unable to detect if they are used in nested client template scenarios. Such a setup requires the escaping of the # literals and the closing </script> tags in the HTML markup and JavaScript initialization statements of the nested widgets. However, this cannot happen automatically. As a result, nested client template scenarios are not supported out-of-the-box.


Consider the following scenario:

  • Grid A is placed in a View. Grid A has a popup edit template.
  • Grid B is placed in a partial view, which represents the popup edit template of Grid A.
  • A Kendo UI widget C is placed in the same partial view as Grid B. The widget C belongs to the client detail template of the Grid B.

In the above scenario, the widget C will not be rendered correctly and will cause an Invalid template JavaScript error.

The easiest way to avoid the JavaScript error is the following:

Step 1 Move the declaration of widget C to a separate partial view.

Step 2 Render the partial view in the main View where Grid A is defined.

In this case widget C will not exist in a nested template context and its HTML/JavaScript output will not need any escaping.

Culture Formats

By default, the Kendo UI Grid formats dates and numbers using the en-US culture.


If the Grid does not display numbers and dates in the right format that corresponds to your culture, change the culture by including the JavaScript for your culture and then call kendo.culture.

Culture-Specific Kendo UI JavaScript

The example below demonstrates how to include culture-specific Kendo UI JavaScript.

<script src="/Scripts/cultures/kendo.culture.de-DE.js"></script>

JavaScript for Current Cultures

The example below demonstrates how to include JavaScript for the current culture.


        var culture = System.Threading.Thread.CurrentThread.CurrentCulture.ToString();
    <script src="<%= Url.Content("~/Scripts/cultures/kendo.culture." + culture + ".min.js") %>"></script>
        kendo.culture("<%= culture %>");

        var culture = System.Threading.Thread.CurrentThread.CurrentCulture.ToString();
    <script src="@Url.Content("~/Scripts/cultures/kendo.culture." + culture + ".min.js")"></script>

For additional information on this issue, refer to the article on globalization.

See Also

Other articles on the Kendo UI Grid for ASP.NET MVC:

Articles on Telerik UI for ASP.NET MVC:

Other articles on troubleshooting: