【问题标题】:How to make Kendo MVC Helpers's CRUD using JSON as contentType如何使用 JSON 作为 contentType 制作 Kendo MVC Helpers 的 CRUD
【发布时间】:2016-08-24 07:51:14
【问题描述】:

@(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 Dropdownlist,它使用 HTML 辅助方式而不是 JQuery 方式初始化。

是否可以使用 JSON 作为 contentType 而不是默认的 application/x-www-form-urlencoded 向 /Service/GetServiceRepository 发出发布请求?

【问题讨论】:

  • 请提供一些关于您的 polemm 和您正在使用的数据的详细信息。
  • 我从来不需要显式设置contentType,而且我总是使用 JSON。你确定这不是你的服务端的东西吗?

标签: javascript jquery json asp.net-mvc kendo-asp.net-mvc


【解决方案1】:

此 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);
    }
});

【讨论】:

    【解决方案2】:

    您可以使用 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")))
      ))
    

    【讨论】:

    • 您没有详细说明您使用的是哪个剑道版本。我认为这就是您正在寻找的答案。由于错误修复,最终您将使用 2016 版本。
    猜你喜欢
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多