0
私は、ファイルといくつかの変数をajaxを使用してコントローラアクションに投稿しようとしていましたが、両方の変数に対してnullパラメータを取得しています。以下 は私のAJAX呼び出しHttpPostedFileBaseとその他の変数をajax POSTでmvcコントローラに渡す
$("#btn-upload").on("click", function() {
var rows =$("[name='rows']").val();
var formData = new FormData($('#excel-upload-form')[0]);
var Data = formData+"&rows="+rows;
$.ajax({
url: '/MVC/UploadExcel/UploadExcel',
type: 'POST',
data: Data,
cache: false,
contentType: false,
processData: false,
success: function (result) {
if (result=='True') {
$(".alert-success").show();
}
else {
$(".alert-danger").show();
}
},
error: function (jqXHR, textStatus, errorThrown) {
$(".alert-danger").show();
},
});
});
で、私のコントローラのアクションは
[HttpPost]
public bool UploadExcel(HttpPostedFileBase uploadedFile, int? rows)
{
var excelUtility = new ExcelUtilityService();
bool success=false;
if ((uploadedFile != null || uploadedFile.ContentLength > 0)&& rows !=null)
{
success = excelUtility.ProcessFile(uploadedFile, rows);
}
return success;
}
私はアヤックスでのみファイルのパラメータを渡すと呼んでそれが正常に動作しますが、私は複数のパラメータなどでそれをしようとするとあります私のコードで '行'、両方のパラメータは、私のコントローラのアクションでは、ポストの間にnullになります。
使用するようにスクリプト 'formData.append( '行'、行)を変更し、代わりに' VARデータの '= FORMDATA + "&行=" +行;'( 'データを持つ:formdata'を) –
はい、それは@StephenMueckeありがとうございました:) 私はそれを完了することができるように答えを投稿してください –