使用'+'接收字符串时Ajax发布附加字符串FormData使用c#
问题描述:
其实我创建了一个页面,文本和图像保存过程到数据库。所以我使用了表单数据。一切都很好,但是当我们用空格给文本时,空格变成了'+'符号。请从下面的代码我怎样努力,使用'+'接收字符串时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
答
它在链接Mark给出的答案解释:
在一些GET和POST请求(最有可能在URL,或者通过一种形式),空间是在将它们传递到服务器之前编码为“+”(加号)符号。
这是因为URL不能包含空格。
注意:这仅适用于应用程序/ x-www-form-urlencoded内容。空格字符编码为:%20
。
https://*.com/a/11447443/5233656你可以从这里引用 – Mark
我们不知道'MyStreamProvider'是什么,或者它在哪里得到它的数据或它在那些数据中的作用。 –
不,而不是你给定的链接,我可以将'+'替换为方法中的''。我需要知道它为何发生,以及它的解决方案@Mark –