You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kendo Upload异步上传时传递的元数据为Null,如何正确传参到后端?

问题原因

前端通过e.data传递的参数键名和后端接口的接收参数名不匹配:

  • 前端上传时传递的参数键为 EntityID
  • 后端接口定义的接收参数名为 metaData
    MVC模型绑定无法对应上两个不同名称的参数,因此获取到的值始终为null。
解决方法

方法1:修改后端参数名对齐前端

直接将后端接口的接收参数名改为和前端传递的键名一致即可:

[HttpPost]
public ActionResult ChunkSave(IEnumerable<HttpPostedFileBase> files, string EntityID)
{
    // 此处EntityID即可获取到前端传递的元数据值
}

方法2:修改前端传递的键名对齐后端

如果不想改动后端接口定义,调整前端onUpload方法里的参数键名即可:

function onUpload(e) {
    e.data = {
        metaData: document.getElementById("spanMatterName").textContent
    };
}

方法3:封装类接收多字段元数据(推荐)

如果后续需要传递多个元数据字段,建议单独封装元数据接收类,避免接口参数过多:

  1. 定义元数据接收类
public class UploadMetaData
{
    public string EntityID { get; set; }
    // 可新增其他需要传递的元数据字段
}
  1. 调整接口参数类型
[HttpPost]
public ActionResult ChunkSave(IEnumerable<HttpPostedFileBase> files, UploadMetaData metaData)
{
    // 通过metaData.EntityID获取对应值
}

注意:当前你的分块上传配置无需额外调整,upload事件会在每一次分块上传请求触发时都携带你设置的元数据,无需额外处理分块场景的参数传递。

内容的提问来源于stack exchange,提问作者Bokambo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 09:00:01