如何使用JSON作为contentType来制作Kendo MVC Helpers的CRUD

sho*_*ole 8 javascript asp.net-mvc jquery json kendo-asp.net-mvc

@(Html.Kendo().DropDownListFor(model => model.ServiceID)
  .OptionLabelTemplate("#=optionLabel#")
  .ValueTemplate("#=Code#(#=Rate#) - #=Description#")
  .Template("#=Code#(#=Rate#) - #=Description#")
  .DataTextField("Code")
  .DataValueField("ServiceID")
  .DataSource(d =>
  {
    d.Read(read =>
    {
      read.Action("GetServiceRepository", "Service").Data("...")
      .Type(HttpVerbs.Post);
    });  
  })
  .OptionLabel(new { optionLabel = Resources.Wording.SelectOne, ServiceID = 0, Rate = 0, Code = "" })
)
Run Code Online (Sandbox Code Playgroud)

我有一个Kendo Dropdownlist,它使用HTML帮助方式而不是JQuery方式初始化.

无论如何使用JSONcontentType而不是默认值来发布/ Service/GetServiceRepository的发布请求application/x-www-form-urlencoded

小智 3

此 Kendo MVC Helper 不支持设置内容类型。它旨在与 MVC 控制器和 Kendo MVC 服务器 API 配合使用,因此并非所有请求选项都可以设置。您应该使用 JavaScript 初始化以便能够设置所有选项。在助手初始化后,可以通过 JavaScript 修改选项,例如

$(function () {
    var grid = $("#grid").data("kendoGrid");
    grid.dataSource.transport.options.update.contentType = "application/json";
    //override the parameterMap function in order to convert the data to JSON
    grid.dataSource.transport.parameterMap = function (options, type) {
        return kendo.stringify(options);
    }
});
Run Code Online (Sandbox Code Playgroud)