收到字符串' +'当Ajax发布时使用c#将字符串附加到FormData

时间:2017-10-06 09:42:10

标签: 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({
                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;
}

请提出你的建议。 谢谢, Arun D

1 个答案:

答案 0 :(得分:1)

Mark给出的链接的答案中解释了这一点:

  

在某些GET和POST请求中(很可能在URL中或通过表单),空格在传递到服务器之前被编码为“+”(加号)符号。

这是因为网址不能包含空格。

注意:这仅适用于 application / x-www-form-urlencoded 内容。除此之外,空格字符编码为:%20