我正在使用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; }
}
已解决。
实际上,问题是插入SQL。我认为创建NVARCHAR列就足够了,但是显然我必须在字符串之前使用N。
感谢评论中的所有人帮助我!这很有用。