提问人:B. Jones 提问时间:10/9/2023 最后编辑:Qing GuoB. Jones 更新时间:10/9/2023 访问量:53
如何将 JSON 字符串从 AJAX 调用传递到 .Net Core 控制器操作?
How do you pass a JSON string from an AJAX call to a .Net Core controller action?
问:
我已经阅读了几个这样的例子,但就是无法让它工作。我正在尝试将 json 数据传递给 .Net Core 控制器操作,并且该值在我的操作方法中始终为 null。我已经尝试了多种变体,但似乎没有任何效果。在此示例中,我将 places 设置为文本,以确保我尝试传递有效的 JSON。
Javascript的:
function GetRatedPlaces(places) {
places = { name: "John", age: 30, city: "New York" };
var placesJson = JSON.stringify(places);
console.log(placesJson);
$.ajax({
type: 'POST',
url: '@Url.Action("GetRatedPlaces", "Home")',
contentType: 'application/json',
data: placesJson,
cache: false,
success: function (result) {
// Handle the response from the controller
}
});
}
控制器操作:
[HttpPost]
public IActionResult GetRatedPlaces([FromBody] string places)
{
// Deserialize places here.
return Ok();
}
答:
1赞
Qing Guo
10/9/2023
#1
第一种方法:尝试创建一个模型:
public class Places
{
public string name { get; set; }
public int age { get; set; }
public string city { get; set; }
}
然后:
[HttpPost]
public IActionResult GetRatedPlaces([FromBody]Places places)
{
// Deserialize places here.
return Ok();
}
第二种方式:您可以尝试以下代码:
function GetRatedPlaces(places) {
places = { name: "John", age: 30, city: "New York" };
var placesJson = JSON.stringify(places);
console.log(placesJson);
$.ajax({
type: 'POST',
url: '@Url.Action("GetRatedPlaces", "Home")',
data: places,
success: function (result) {
// Handle the response from the controller
}
});
}
该操作设置用于绑定数据的参数:
[HttpPost]
public IActionResult GetRatedPlaces( string name,int age,string city)
{
// Deserialize places here.
return Ok();
}
结果:
评论
0赞
B. Jones
10/10/2023
我明白我做错了什么。谢谢@qingguo。
0赞
Qing Guo
10/10/2023
嗨,琼斯@B,不客气:) 有什么更新吗?如果我的回答能帮助您解决问题,您能接受答案吗?如果没有,你能跟进让我知道吗?请参阅:如何获取答案 非常感谢。
0赞
B. Jones
10/10/2023
@Qing郭 那处理好了。我仍在整理一些细节,但这个解释确实有帮助。
评论
POST