2017-10-06 125 views
0

其實我創建了一個頁面,文本和圖像保存過程到數據庫。所以我使用了表單數據。一切都很好,但是當我們用空格給文本時,空格變成了'+'符號。請從下面的代碼我怎樣努力,使用'+'接收字符串時Ajax發佈附加字符串FormData使用c#

腳本:

var fileData = new FormData(); 
var notes = "testing testing testing testing testing testing testing te"; 
fileData.append('notes', notes); 
$.ajax({ 
       url: "api/update", 
       type: "POST", 
       data: fileData, 
       }, 
       success: function (response) { 
        alert("saved"); 
       } 
}); 

我可以同時調試腳本相同的字符串。但是當我們從腳本發佈到Action後,我只能將字符串作爲「測試+測試+測試+測試+測試+測試+測試+測試」。

C#:

[HttpPost] 
[Route("api/update")] 
public async Task<dynamic> PostAsyncOccupantImage() 
{ 
     string error = string.Empty; 
     MyStreamProvider streamProvider = new MyStreamProvider(); 
     await Request.Content.ReadAsMultipartAsync(streamProvider); 
     var notes = streamProvider.FormData.ToString().Split('&')[0] 
     return error; 
} 

請給你的建議。 謝謝, 阿倫d

+0

https://stackoverflow.com/a/11447443/5233656你可以從這裏引用 – Mark

+0

我們不知道'MyStreamProvider'是什麼,或者它在哪裏得到它的數據或它在那些數據中的作用。 –

+0

不,而不是你給定的鏈接,我可以將'+'替換爲方法中的''。我需要知道它爲何發生,以及它的解決方案@Mark –

回答

1

它在鏈接Mark給出的答案解釋:

在一些GET和POST請求(最有可能在URL,或者通過一種形式),空間是在將它們傳遞到服務器之前編碼爲「+」(加號)符號。

這是因爲URL不能包含空格。

注意:這僅適用於應用程序/ x-www-form-urlencoded內容。空格字符編碼爲:%20