我正在尝试通过ajax上传ASP.NET文件。我有这个ajax调用:
$.ajax({
type: "POST",
url: '/Home/Upload',
data: formData,
dataType: 'json',
contentType: false,
processData: false,
success: function (response) {
alert('success!!');
$("#" + id).attr('disabled', false);
},
error: function (error) {
alert("errror");
}
});
这是我的.NET代码:
[HttpPost]
public void Upload()
{
for (int i = 0; i < Request.Files.Count; i++)
{
var file = Request.Files[i];
string path = Path.Combine(Server.MapPath("~/UploadedFiles"),
Path.GetFileName(file.FileName));
file.SaveAs(path);
}
}
当我转到文件夹时,我可以看到它已被上传,但由于某种原因,ajax会返回警告错误,请帮忙。
答案 0 :(得分:1)
因为你必须归还一些东西。没有返回它总是会出错。
[HttpPost]
public ActionResult AsyncUpload()
{
for (int i = 0; i < Request.Files.Count; i++)
{
var file = Request.Files[i];
string path = Path.Combine(Server.MapPath("~/UploadedFiles"),
Path.GetFileName(file.FileName));
file.SaveAs(path);
}
return Json(new { success = true },
"text/plain");
}
答案 1 :(得分:0)
您应该从服务器返回一个布尔值到客户端,以了解该过程是否正确完成。
<强> C#:强>
[HttpPost]
public void Upload() {
try {
for (int i = 0; i < Request.Files.Count; i++) {
// your stuff
}
return true;
} catch (Exception) {
return false;
}
}
** JS:**
$.ajax({
// your options
success: function (response) {
if (response) {
alert('success!!');
$("#" + id).attr('disabled', false);
} else {
alert("an errror occurred");
}
},
error: function (error) {
alert("error");
}
});