如何在ASP.net核心的控制器中检索JSON数据?
我需要用JSON发送数据并保存到asp.net控制器中的模型如何在ASP.net核心的控制器中检索JSON数据?,json,asp.net-core-mvc,Json,Asp.net Core Mvc,我需要用JSON发送数据并保存到asp.net控制器中的模型 //JSON data var dataType = 'application/json'; var data = { ID: 'Zaki', } console.log('Submitting form...'); console.log(data); $.ajax({
//JSON data
var dataType = 'application/json';
var data = {
ID: 'Zaki',
}
console.log('Submitting form...');
console.log(data);
$.ajax({
type: 'POST',
url: 'Save',
dataType: 'json',
contentType: dataType,
data: data,
success: function (result) {
console.log('Data received: ');
console.log(result);
}
});
控制器
[HttpPost]
public ActionResult Save([FromBody] string ID)
{
return Json (ID);
}
public class JsonRequest
{
public string Id { get; set; }
}
[HttpPost]
public ActionResult Save(JsonRequest data)
{
return Json(data.Id);
}
我在控制台中得到空值,它应该是zaki,从那里我想写保存代码
修改代码中的此行数据:数据,以 数据:JSON.stringify(数据) 向web服务器发送数据时,数据必须是字符串,JSON.stringify方法将JavaScript对象转换为字符串 另一种方法是,不获取原始字符串值,而是像这样将参数包装到类对象中
public class ParamObj
{
public string ID{get;set;}
}
在你的控制器中,得到这样一个对象类型的参数
public ActionResult Save([FromBody] ParamObj data)
Thanx我知道已经标记为已回答,但这里有另一种方法: 我没有使用binding FromBody属性 控制器
[HttpPost]
public ActionResult Save([FromBody] string ID)
{
return Json (ID);
}
public class JsonRequest
{
public string Id { get; set; }
}
[HttpPost]
public ActionResult Save(JsonRequest data)
{
return Json(data.Id);
}
我使用的不是dataType,而是accept,您不需要将json转换为字符串
为了避免我使用的相对路径出现问题:url:“@url.Action”(“Save”,“Home”)”
Javascript
function send()
{
//JSON data
var dataType = 'application/json';
var data = {
"id": "Zaki"
}
console.log('Submitting form...');
console.log(data);
$.ajax({
type: 'POST',
url: '@Url.Action("Save", "Home")',
accept: dataType,
data: data,
success: function (result) {
console.log('Data received: ');
console.log(result);
}
});
}
祝您的项目好运。另一种方法是简单地使用“动态”类型来处理json请求数据。看一看:
[HttpPost]
public IActionResult YoutMethod([FromBody] dynamic requestData)
{
Log.Information(requestData.field1);
Log.Information(requestData.field2);
// ...
return Ok();
}
您是否试图从数据库中获取数据,并希望与模型绑定以显示在控制台上?您的问题有点不清楚。不,我正在尝试从JSON获取数据并将其保存到数据库。如果我没有错,您的JSON应该如下所示。var data={“ID”:“Zaki”}我添加了一个屏幕截图,我认为问题不在于发送是获取数据,然后为Json创建一个模型,并使用JsonConvert进行如下序列化:Newtonsoft.Json.JsonConvert.SerializeObject(NewlyCreatedJsonModel))