C# 接收到带'的字符串+';使用c将带有附加字符串的Ajax post发送到FormData时#
实际上,我已经创建了一个页面,并将文本和图像保存到数据库。所以我使用了表单数据。一切都很好,但是当我们给文本加空格时,空格变成了“+”符号。请查找下面的代码,了解我是如何尝试的 脚本:C# 接收到带'的字符串+';使用c将带有附加字符串的Ajax post发送到FormData时#,c#,jquery,.net,ajax,form-data,C#,Jquery,.net,Ajax,Form Data,实际上,我已经创建了一个页面,并将文本和图像保存到数据库。所以我使用了表单数据。一切都很好,但是当我们给文本加空格时,空格变成了“+”符号。请查找下面的代码,了解我是如何尝试的 脚本: var fileData = new FormData(); var notes = "testing testing testing testing testing testing testing te"; fileData.append('notes', notes); $.ajax({
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");
}
});
[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;
}
我可以在调试脚本时获得相同的字符串。但在我们从脚本发布到操作之后,我只能得到字符串“testing+testing+testing+testing+testing+testing+testing+testing+testing”
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");
}
});
[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;
}
[HttpPost]
[路线(“api/更新”)]
公共异步任务PostAsyncOccountImage()
{
字符串错误=string.Empty;
MyStreamProvider streamProvider=新的MyStreamProvider();
wait Request.Content.ReadAsMultipartAsync(streamProvider);
var notes=streamProvider.FormData.ToString().Split('&')[0]
返回误差;
}
请给出你的建议。
谢谢
Arun D在给出以下链接的答案中进行了解释: 在一些GET和POST请求中(最有可能在URL中,或通过表单),空格在传递到服务器之前被编码为“+”(加号) 这是因为URL不能包含空格
注意:这仅适用于应用程序/x-www-form-urlencoded内容。空格字符以其他方式编码为:
%20
您可以从这里引用我们不知道heckMyStreamProvider
是什么,也不知道它从哪里获取数据,或者它对数据做了什么。不,我可以在方法中将“+”替换为“”而不是给定的链接。我需要知道它为什么会发生,以及它如何解决@Mark