[UTF-8字符在ASP.NET Core中发出POST请求后弄乱了

问题描述 投票:0回答:1

我正在使用ASP.NET Core MVC。

我正在尝试使用FormData向Controller发出POST请求。但是,如果我在FormData中放入阿拉伯字母以发送给Controller,它将接收它作为问号。

我尝试更改Content-Type,但是什么也没发送。

这是我发送POST请求的方式:

 const xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            window.location.href = 'Categories';
        }
    }

    xhr.open("POST", 'http://localhost:52320/api/Categories/Add', true);

    const fd = new FormData();
    fd.append('CatName', txtCatName.value);
    fd.append('FileName', uploadFileName);

    xhr.send(fd);

这就是我在Controller中收到它的方式:

 [Route("api/[controller]")]
public class CategoriesController : Controller {

    [Route("Add")]
    [HttpPost]
    public IActionResult Add(FormData formData)
    {
            if (formData != null && ModelState.IsValid)
            {

            DataManager.Instance.AddCategory(formData.CatName, formData.FileName);

                return Ok();
            }

        return BadRequest();
    }

}

public class FormData
{
    public string CatName { get; set; }
    public string FileName { get; set; }
}
javascript c# asp.net asp.net-core post
1个回答
0
投票

已解决。

实际上,问题是插入SQL。我认为创建NVARCHAR列就足够了,但是显然我必须在字符串之前使用N。

感谢评论中的所有人帮助我!这很有用。

© www.soinside.com 2019 - 2024. All rights reserved.