我目前正在开发使用ASP.NET MVC 5上传图像。我在将图像与视图模型一起上传时遇到了一些问题。仅上传图像的效果如下。这是我的控制器。
[HttpPost("fileUpload")]
public async Task<JsonResult> fileUpload(IFormFile file)
{
try
{
//MY JOB IS HERE
}catch(Exception ex){
//SOME EXCEPTION WILL BE HERE
}
}
这是javascript:
var files = new FormData();
files.append('file', updfile.files[0]);
$.ajax({
url: url,
data:files,
cache: false,
contentType: false,
processData: false,
type: 'POST',
success: function (data) {
alert(data.responseText);
displayLoading(false);
},
error: function (err) {
alert(err.responseText);
document.getElementById("image").src = "#";
displayLoading(false);
}
});
和HTML:
<div class="col-md-6">
<form id="frmABC" method="post" enctype="multipart/form-data">
<div id="loading" name="loading">LOADING</div>
<input type="file" id="files" name="files" onchange="file_OnChange('@ServerLink.configCollection["FileUploadApiLink"]',this,'@Model.SysKey')" />
<div style="width:200px;height:200px;border:1px solid #70c3ff">
<img id="image" style="max-height:100%;max-width:100%;background-color:red" src="@ServerLink.configCollection["GetCompanyPictureByID"]/@Model.SysKey" />
</div>
</form>
</div>
所以我的问题是我想在控制器中添加IFormFile参数旁边的另一个veiw模型。如
public async Task<JsonResult> fileUpload(IFormFile file, myInfVM infovm)
和我的myInfVM:
public class myInfVM
{
public string CompanySK { get; set; }
public string CompanyName { get; set; }
}
我尝试了以下方法,但没有运气。
var files = new FormData();
files.append('file', updfile.files[0]);
$.ajax({
url: url,
data:{ file : files, infovm : { CompanySK : '123', CompanyName : 'ABC' } },
cache: false,
contentType: false,
processData: false,
type: 'POST',
success: function (data) {
alert(data.responseText);
displayLoading(false);
},
error: function (err) {
alert(err.responseText);
document.getElementById("image").src = "#";
displayLoading(false);
}
});