을 Heres 내가 내 컨트롤러업로드 이미지 파일은 아파치 코르도바 플러그인 파일 전송을 사용하여 인터넷의 핵심이 컨트롤러를 점하는
[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");
}
과 사용하여 내 아파치 코르도바 응용 프로그램
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);}
내가 코드를 지금까지 가지고 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