jquery - 为什么我的 Api 控制器中出现错误 500 和来自 ajax 请求的空数据?
问题描述
部分html代码:
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<h1>Registration</h1>
<form id="loginform">
<input type="number" name="Id" value="0" id="ID"/><br />
<p>Имя</p>
<input type="text" name="Name" id="Name" /><br />
<p>Ник</p>
<input type="text" name="NickName" id="NickName" /><br />
<p>Возраст</p>
<input type="number" name="Age" id="Age" /><br />
<p>Почта</p>
<input type="text" name="Email" id="Email" /><br />
<p>Пароль</p>
<input type="text" name="Password" id="Password" /><br />
<input type="submit" value="отправить" id="Submit" />
</form>
<script>
function submitForm(form, url) {
// let formData = $(form).serialize();
var person = new Object();
person.Id = $("#ID").val();
person.Name = $("#Name").val();
person.Age = $("#Age").val();
person.NickName = $("#NickName").val();
person.Email = $("#Email").val();
person.Password = $("#Password").val();
let response = "";
$.ajax({
url: url,
type: "POST",
data: {user:person},
contentType: "application/json",
dataType: "json",
})
return response;
}
$(document).ready(function () {
$("#Submit").on("click", function (e) {
e.preventDefault();
let data = submitForm($("#loginform"), "/api/Test");
console.log(data);
});
});
</script>
API 控制器:
[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
Context db;
public TestController(Context context)
{
db = context;
}
[HttpPost]
public async Task<IActionResult> Registration([FromForm]User user)
{
if (ModelState.IsValid)
{
db.Users.Add(user);
await db.SaveChangesAsync();
return Ok(user);
}
return BadRequest(ModelState);
}
}
用户的简单模型:
public int Id { get; set; }
public string Name { get; set; }
public string NickName { get; set; }
public string Email { get; set; }
public int Age { get; set; }
public string Password { get; set; }
我在函数 submitForm 中尝试过 $(form).serializeArray() 但它在浏览器的控制台中抛出错误 500。我试过 JSON.stringify 和 serializeArray。在哪些情况下不应该使用 [FromForm] 和 [FromBody]?我见过很多没有这个属性的例子
解决方案
推荐阅读
- matlab - 将 LPSolve 安装到 MATLAB:“找不到 mxlpsolve.dll”
- javascript - PHP中的SQL语句,不能使用变量
- python - 使用 functools.total_ordering 进行比较
- javascript - 自动登录配置文件到 Firebase 应用程序
- swift - Firebase 查询特定值
- r - 在 R 中运行集成代码时出现警告
- javascript - 正则表达式转义要在`::before`中显示的数据
- python - python生成对顶点度有一定约束的随机连通图
- python - 循环遍历python数据框问题的字典
- image - 用红色获得优势