2017-10-15 30 views
2

我想在用戶執行上載時發送圖像和數字。如何使用asp.net核心以操作方法接收通過ajax請求發送的文件和整數

我的JavaScript

form.append('file', $(uploader).get(0).files[0]); 
     var id= $("#id").val(); 

     form.append("id", id); 

     $.ajax({ 

      method: 'POST', 
      url: '/images/send', 
      data: form, 
      form: false, 
      processData: false 


     }); 

在我的行爲我該怎麼辦?

有了這個,我只收到圖像。

 [HttpPost] 
     public string send(IFormFile file) // What argument should I use 
     { 
       How do I get the number and file? 
     } 
+0

嗨,看看如何https://liftcodeplay.com/2017/02/14/using-asp-net-core-and -jquery通話的方法,通AJAX / – 2017-10-15 12:21:59

回答

2

您可以爲您的操作方法添加一個int類型的新參數。參數名稱應與您要發送的FORMDATA項目名稱(id

[HttpPost] 
public string send(IFormFile file,int id) 
{ 
    // to do : return something. 
} 

你需要有設置爲false

這應該工作,你的$就法contentType財產。

var form = new FormData(); 

form.append('file', $('#File').get(0).files[0]); 
var id= $("#id").val();   
form.append("id", id); 

var urlToPost ="/images/send"; 

$.ajax({ 
     method: 'POST', 
     url: urlToPost , 
     data: form, 
     processData: false, 
     contentType: false 
     }).done(function(result) { 
     // do something with the result now 
     console.log(result); 
     }).fail(function(a, b, c) { 
      alert("error"); 
     }); 

如果你想用文件輸入發送多個輸入值,我建議你創建一個視圖模型和使用,在this post作爲解釋。

此外,將表單元素保存在表單中並將其值設置爲您要發送的URL並將其讀取到JavaScript代碼中,然後將其硬編碼到該表單中可能是一個不錯的主意。

<form asp-action="send" asp-controller="images" method="post"> 
    <input type="file" name="File" id="File" /> 
    <input type="text" id="id" value="0" /> 
    <input type="submit" /> 
</form> 

現在在您的JavaScript腳本中您可以從窗體中讀取它。例如,如果您正在配置表格提交事件

$(function() { 
    $("form").submit(function (e) { 
     e.preventDefault(); 

     var urlToPost = $(this).attr("action"); 

     //your existing code for ajax call 
    }); 
}); 
相關問題