2017-10-06 122 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