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

使用Krajee Bootstrap File Input上传文件时无法获取数据

解决Krajee Bootstrap File Input在ASP.NET Core 2中上传文件参数为空的问题

我之前也碰到过一模一样的情况,问题根源其实是前端表单字段名和后端控制器参数名不匹配,再加上HTML输入框缺了关键属性导致的。下面一步步帮你搞定:

1. 先补全HTML输入框的必要属性

你的<input>标签缺少name属性——ASP.NET Core的模型绑定完全依赖这个属性来识别上传的文件。如果需要支持多文件上传,记得加上multiple属性:

<input id="fileFileUpload" name="files" type="file" multiple />

2. 调整JavaScript配置(或调整控制器参数)

Krajee File Input默认会以file作为文件参数的键名发送到后端,要是你想保留控制器里的files参数名,就得在JS配置里指定fileField属性,让组件用你设置的name值来传参:

$("#fileFileUpload").fileinput({
    showPreview: true,
    uploadAsync: false,
    uploadUrl: '/fileupload',
    fileField: 'files' // 这里要和input的name属性完全一致
});

3. 控制器端的验证

确保控制器方法的参数名和前端发送的键名匹配,比如按上面的配置,控制器代码可以保持原样:

[HttpPost]
public JsonResult Index(List<IFormFile> files) {
    // 现在files应该能正常获取到上传的文件了
    // 可以通过循环处理每个文件
    foreach(var file in files) {
        // 比如保存文件到服务器的逻辑
    }
    return Json(new { success = true });
}

另一种简化方案(不用改JS)

要是不想调整JS配置,也可以直接把控制器的参数名改成组件默认的file,同时给input加上name="file":

<input id="fileFileUpload" name="file" type="file" multiple />
[HttpPost]
public JsonResult Index(List<IFormFile> file) {
    // 处理上传的文件
}

这样调整之后,控制器就能正确接收到上传的文件了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:44:39