0
相続人は、私は私のコントローラアップロード画像ファイルは、Apache Cordovaのプラグインのファイル転送を使用して、ネットコア2のコントローラをドットに
[HttpPost]
[Route("addexpenses")]
public ActionResult AddExpenses(IFormFile _expenses)
{
Expenses expensesAhYeah = new Expenses();
expensesAhYeah.UserId = Convert.ToInt32(_expenses["UserId"].ToString());
expensesAhYeah.ExpenseType = Convert.ToInt32(_expenses["ExpenseType"].ToString());
expensesAhYeah.ExpenseAmount = Convert.ToInt32(_expenses["ExpenseAmount"].ToString());
expensesAhYeah.ExpenseDesc = _expenses["ExpenseDesc"].ToString();
expensesAhYeah.ExpenseDate = Convert.ToDateTime(_expenses["ExpenseDate"].ToString());
if (ModelState.IsValid) uRepo.AddNewExpense(expensesAhYeah);
return Ok("ok");
}
にして使用して私のApacheのコルドバアプリ
function saveExpenseReport() {
var uctxt = JSON.parse(localStorage.getItem('ucontext'));
var Expenses = JSON.stringify({
'UserId': uctxt.idEmployee,
'ExpenseType': $('#selExpenseType').val(),
'ExpenseAmount': $('#expenseAmount').val(),
'ExpenseDesc': $('#expenseReason').val(),
'ExpenseDate': $('#expenseDate').val()
});
var fileURL = imgLoc;
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = "thisfilenamewew.jpg";
options.mimeType = "image/jpeg";
options.chunkedMode = false;
setLoading('show');
options.params = Expenses;
var ft = new FileTransfer();
var encURI = encodeURI(apicall + "tjb/addexpenses");
ft.upload(fileURL, encURI, win, fail, options);}
Iコードのために、これまで持っていますvs2017とdotnet core2のため、webapi2をデバッグし、コントローラの先頭にブレークポイントを設定します。 _expenses
はなぜnullですか?
すべてのアイデア?
あなたは投入しているjsonデータから値を書き出しましたか? '$( '#selExpenseType')。val()'また 'document.getElementById(" selExpenseType ")。value;'はより速いです。デバッグはコンソールをエコーして使用する必要があります。 – EasyBB
こんにちは@EasyBB私は、その罰金、それは今私の懸念ではありませんでした。 'ft.upload'行の前に' Expenses'の値を見て、正しい値を得ました。コントローラの '_expenses'は私の問題であるnullです。 – superthomas
それはあなたのすべてのオプションをコントローラに渡しているので、あなたの経費はexpenses.optionsになります。そして、その文字列をコントローラーのjsonに変換する必要はありません。あなたは何かをする前に_expensesをエコーしましたか?ちょうどあなたのためにプログラムで一緒にこれを作成しようとしている – EasyBB