检查下面的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设计代码。