是用ajax发送文件,在MVC中使用Ajax发送文件和文本参数 - c#

本文档展示了如何在jQuery中通过Ajax上传文件,并同时传递额外的文本参数如`type`和`id`到ASP.NET Core MVC控制器。在jQuery代码中,通过FormData对象附加文件和参数,然后在控制器端通过`Request.Form`获取这些值。这种方法允许在不刷新页面的情况下进行文件上传和数据传递。
摘要由CSDN通过智能技术生成

检查下面的jQuery代码。在这里,我从html抓取文件,然后通过ajax调用将其发布到我的Controller Post方法。正如您所见,从Controller post方法中,我成功地在名为files的变量中接收了该文件。但是我的问题是如何从此ajax调用中发送另外两个文本参数-type和id,然后又如何从带有该文件的控制器中获取该值?基本上我也必须使用这些文本值来获取该文件。那怎么可能? Ajax和控制器需要哪些更改?

HTML:

Browse...

οnchange="$('#uploaded-file-name').text($('#file-upload')[0].value);" hidden>

Start Upload

jQuery Ajax:

//file upload

$("#start_upload").click(function (evt) {

var fileUpload = $("#file-upload").get(0);

var files = fileUpload.files;

var data = new FormData();

for (var i = 0; i < files.length; i++) {

data.append(files[i].name, files[i]);

}

$.ajax({

type: "POST",

url: "/Products/UploadFiles",

contentType: false,

processData: false,

data: data,

success: function (message) {

alert(message);

},

error: function () {

alert("There was error uploading files!");

}

});

});

MVC .net核心控制器:

[HttpPost]

public IActionResult UploadFiles()

{

//file upload process

var files = Request.Form.Files;

string type = "";

int id = ;

}

参考方案

我在这里所做的是,只需将带有值的键插入jquery的FormData() obj中,然后就可以从控制器中获取它了。如果您想进一步了解FormData(),请read here

将您的jquery更改为此

//file upload

$("#start_upload").click(function (evt) {

var fileUpload = $("#file-upload").get(0);

var files = fileUpload.files;

var data = new FormData();

data.append('type', 'your_type');

data.append('id', '1');

for (var i = 0; i < files.length; i++) {

data.append(files[i].name, files[i]);

}

$.ajax({

type: "POST",

url: "/Products/UploadFiles",

contentType: false,

processData: false,

data: data,

success: function (message) {

alert(message);

},

error: function () {

alert("There was error uploading files!");

}

});

});

然后通过控制器的键获取这些值:

[HttpPost]

public IActionResult UploadFiles()

{

//file upload process

var files = Request.Form.Files;

string type = Request.Form.Where(x => x.Key == "type").FirstOrDefault().Value;

string id = Request.Form.Where(x => x.Key == "id").FirstOrDefault().Value;

}

Div单击与单选按钮相同吗? - php

有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:

我有一个列表视图,在标题中有一个复选框。如果标题复选框已选中/未选中,我想选择行中的所有复选框。如何在客户端实现此目标?这是ListView设计代码。

@item.Title

} 结果; (每页发布数:6)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值