如何将 Javascript 文件对象 + 数据发送到 MVC 6 控制器 - ASP.NET 5.
本文关键字:MVC 控制器 NET ASP Javascript 文件 对象 数据 | 更新日期: 2023-09-27 18:32:42
这个Ajax在一个函数中,我知道它有文件和属性。什么都没有发生,我正在拖动我的文件并删除它,但 Ajax 什么也没发生。当我将属性输出到页面时,我看到我在 JS 中的函数有该文件,但它没有将其发送到控制器。我认为它无法正常工作,并且在调试索引控制器时,我的参数中没有文件属性。 Ajax 没有给我成功或失败警报消息。
我的最终目标是上传文件中的数据,以便我可以解析它。
JavaScript
function sendFile(file) {
$.ajax({
type: "POST",
url: "HomeController/Index", // the method we are calling
contentType: "application/json; charset=utf-8",
data: { filename: file.name, fileType: file.type, fileSize: file.size },
dataType: "json",
success: function(result) {
alert('Yay! It worked!');
// Or if you are returning something
alert('I returned... ' + result.WhateverIsReturning);
},
error: function(result) {
alert('Oh no :(');
}
});
Output(
"<p>File information: <strong>" + file.name +
"</strong> type: <strong>" + file.type +
"</strong> size: <strong>" + file.size +
"</strong> bytes</p>"
);
}
阿贾克斯
$.ajax({
type: "POST",
url: "HomeController/Index", // the method we are calling
contentType: "application/json; charset=utf-8",
data: { filename: file.name, fileType: file.type, fileSize: file.size },
dataType: "json",
success: function(result) {
alert('Yay! It worked!');
// Or if you are returning something
alert('I returned... ' + result.WhateverIsReturning);
},
error: function(result) {
alert('Oh no :(');
}
});
C#
public IActionResult Index(string fileName, string fileType, int fileSize)
{
ViewBag.Environments = _configHelper.GetEnvironments();
var model = new HomeViewModel { Environment = "DEV" };
return View(model);
}
CSHTML
<div class="form-group col-md-12">
<label>Company Ids:</label>
<div id="filedrag"><textarea class="form-control" rows="5" id="textAreaCompanyIDs" placeholder="Drop Files Here"></textarea>
</div>
</div>
要在控制器中获取文件,您必须发送完整的文件。
尝试类似操作:
阿贾克斯:
$.ajax({
type: "POST",
url: "HomeController/Index", // the method we are calling
contentType: "application/json; charset=utf-8",
data: { file: file, fileType: file.type, fileSize: file.size },
dataType: "json",
success: function(result) {
alert('Yay! It worked!');
// Or if you are returning something
alert('I returned... ' + result.WhateverIsReturning);
},
error: function(result) {
alert('Oh no :(');
}
});
控制器:
public IActionResult Index(HttpPostedFileBase file, string fileType, int fileSize)
{
ViewBag.Environments = _configHelper.GetEnvironments();
var model = new HomeViewModel { Environment = "DEV" };
return View(model);
}