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

@(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 = "" })
)

这个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);
    }
});

您可以使用DataSource的Custom fluent方法设置ContentType属性。 我使用版本2016.2.504。

用法是:

 @(Html.Kendo().DropDownListFor(model => model.ServiceID)
  .DataTextField("Text")
  .DataValueField("Value")
  .DataSource(d => d.Custom()
    .Transport(c => c.Read(
      read => read.ContentType("xml/json")
          .Data("...")
          .Type(HttpVerbs.Post)
          .Action("GetServiceRepository", "Service")))
  ))
链接地址: http://www.djcxy.com/p/33711.html

上一篇: How to make Kendo MVC Helpers's CRUD using JSON as contentType

下一篇: Swift extensions that apply only when you import them