【问题标题】:Kendo upload control does not upload file using ajax POST剑道上传控件不使用ajax POST上传文件
【发布时间】:2017-05-30 22:08:29
【问题描述】:

我正在使用剑道上传控制将文件发布到服务器

@(Html.Kendo().Upload()
    .Name("file")
    .Async(a => a.Save("DocumentUpload", "Home")
    .AutoUpload(true))
    .Multiple(false))

    [HttpPost]
    public ActionResult DocumentUpload(IEnumerable<HttpPostedFileBase> files)
    {
          var isAjax = HttpContext.Request.IsAjaxRequest();
          // Why isAjax is false here ?? Is it not Ajax POST?
    }

我认为 kendo 会发出 ajax POST 请求。 然而事实并非如此,在 asp.net 中 HttpContext.Request.IsAjaxRequest() 返回 false。
当我检查请求标头时,我也看不到 X-Requested-With:XMLHttpRequest 标头。
这是剑道上传的错误吗?

到底有没有配置kendo上传控件来做ajax POST?

【问题讨论】:

  • 我在同一条船上,想知道您是否遇到过任何解决方案。

标签: kendo-ui kendo-asp.net-mvc telerik-mvc kendo-upload


【解决方案1】:

我相信它默认使用POST。

我认为您的问题是您的小部件的 name 是 file 而您的论点是 files(复数)。

或者,您可以像这样设置.Files("files"):

@(Html.Kendo().Upload()
    .Deferred()
    .Name("upload")
    .Multiple(true)
    .Async(async => async.AutoUpload(true)
        .SaveUrl(Url.Action("SaveAttachment"))
        .SaveField("files")))
    .Events(evt => evt.Success("refreshAttachments")))

【讨论】:

  • 我并不是说它不使用 POST。它确实使用 POST 并将文件发布到服务器。然而问题是它不是 Ajax POST。内部控制器操作方法 'HttpContext.Request.IsAjaxRequest()' 为 false
  • @LP13 抱歉,您的问题不太清楚。我不确定为什么它不会将IsAjaxRequest 设置为true
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-29
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
  • 1970-01-01
  • 2017-08-07
  • 1970-01-01
相关资源
最近更新 更多