ajax传FormData到MVC controller中无法获取

qq_35290478 2018-11-20 09:58:14

后台中file是空值,前端console.log(formdata)是有文件的
...全文
605 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yongcai64900 2018-11-22
  • 打赏
  • 举报
回复
你确定你这样form的值是json格式的??你指定了数据格式是json就必须严格传输json格式的内容后台才能正常接收
colouful_2021 2018-11-22
  • 打赏
  • 举报
回复
可以尝试使用一下AjaxSubmit,相对来说应该还是比较简单的
qq_35290478 2018-11-20
  • 打赏
  • 举报
回复
引用 2 楼 guo449211721 的回复:
你这是同步提交, 你把你的提交 按钮 类型 不要submit类型, 点击按钮直接调用
直接把submit去掉么,还是不行啊
一叶无秋 2018-11-20
  • 打赏
  • 举报
回复
你这是同步提交, 你把你的提交 按钮 类型 不要submit类型, 点击按钮直接调用
qq_35290478 2018-11-20
  • 打赏
  • 举报
回复
有没有大佬救下啊
  • 打赏
  • 举报
回复
另外说到 file 组件,在 html5 协议中,前端可以直接读取客户端的文件内容,然后你可以把内容(base64形式的内容)放到提交对象中,例如
reader.onload = function(r)
            var form = {
                     ........
                     file: e.target.result
            }
            ajax提交form数据;
这样的。
  • 打赏
  • 举报
回复
其实,这里不应该有 <form>。 注意这根本不是 asp.net 页面提交,而是一个 webapi、ashx 那样的数据服务访问。所以其实说什么“访问MVC Controller”纯粹是 asp.net 的早期的比较过时的说法。你只要数据而不是要页面,就好比如说你明明是要买一碗面,为什么要先买下整个店铺然后才能获得一碗面呢?
  • 打赏
  • 举报
回复
url: abp.appPath + 'Envelopes/Import',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false, //不设置内容类型
processData: false, //不处理数据
success: function (content) {

public async Task<ActionResult> Import()
{
bool success = false;
var errorMsg = "未发现上传文件";

var files = Request.Form.Files;

我没有指定datatype,这样可以成功获取
正怒月神 2018-11-20
  • 打赏
  • 举报
回复
你看一下,最后一个示例
https://blog.csdn.net/hanjun0612/article/details/53518581
正怒月神 2018-11-20
  • 打赏
  • 举报
回复
先调试,看action有没有进

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧