0

을 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 인 이유는 무엇입니까?

어떤 아이디어?

+0

채우고있는 json 데이터에서 값을 쓰려고 콘솔을 시도 했습니까? '$ ('# selExpenseType') .val()'또한 document.getElementById ("selExpenseType"). value;'가 빠릅니다. 디버깅은 콘솔을 반향하고 사용하는 것으로 구성되어야합니다. – EasyBB

+0

안녕하세요, @EasyBB 내가 그랬어, 그게 내 관심사가 아니야. 'ft.upload' 라인 전에'Expenses' 값을보고 정확한 값을 얻었습니다. 컨트롤러의'_expenses'는 내 문제인 null입니다. – superthomas

+0

잘 보이므로 모든 옵션을 컨트롤러에 전달하면 비용이 expenses.options 아래에있게됩니다. 컨트롤러에서 json으로 문자열을 변환하지 않아도됩니다. 그것으로 무엇인가를하기 전에 _expenses를 반복했습니다. 당신을 위해 프로그래밍 방식으로 이것을 함께 모으려고 시도합니다. – EasyBB

답변

-1

나는 비슷한 문제가 있다고 생각합니다. Request.Form.Files을 사용해보고 도움이되는지 확인하십시오.

+0

비슷한 토론을 주석에 삽입해야합니다. 그런 다음 솔루션이 도움이된다면 대답으로 이동할 수 있습니다. –