[英]ASP.NET Core Ajax returns null
function addTeam() {
var teamName = $("teamField").val();
$.ajax({
type: "POST",
url: 'AddTeam',
contentType: "application/json;",
data:
{ team: "HELLO PLEASE WORK" },
success: function () {
alert("URA");
},
error: function (error) {
alert(error);
}
});
};
[HttpPost]
public JsonResult AddTeam(string team)
{
teamRepository.Add(new Team { IsDelete = false, Name = team });
teamRepository.SaveChanges();
return Json(team);
}
字符串团队 awlays 返回 null。 我不知道是什么问题。 在stackoverflow中搜索了相同的问题,但没有人适合我
看起来您正在发送带有属性“team”的 object,而不仅仅是一个原始字符串。
您可以创建一个请求 object 作为您的参数:
public class AddTeamRequest
{
public string Team {get; set;}
}
然后将其用作您的参数 object:
public JsonResult AddTeam(AddTeamRequest request)
您无法获得价值,因为您无法从 html 获得价值。您应该获得这样的团队名称。 只需添加#。
function addTeam() {
var teamName = $("#teamField").val();///this line
$.ajax({
type: "POST",
url: 'AddTeam',
contentType: "application/json;",
data:
{ team: "HELLO PLEASE WORK" },
success: function () {
alert("URA");
},
error: function (error) {
alert(error);
}
});
};
您使用application/json
,因此您将数据放入 body ,如果您想在 post 方法中获取数据,您可以使用[FromBody]
。您传递的数据需要使用JSON.stringify(xxx)
来更改数据在ajax
之前输入。 这是一个演示:
看法:
var team1 = "HELLO PLEASE WORK";
var team = JSON.stringify(team1) ;
$.ajax({
type: "POST",
url: 'AddTeam',
contentType: "application/json;charset=utf-8",
data: team,
success: function () {
alert("URA");
},
error: function (error) {
alert(error);
}
});
Controller:
[HttpPost]
public JsonResult AddTeam([FromBody]string team)
{
return Json(team);
}
或者你可以使用contentType: "application/x-www-form-urlencoded",
,这样你就不需要使用[FromBody]
也不需要改变数据类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.