[英]Pass json from js to controller
数据不传递给控制器,始终为null
我的脚本视图:
function deleteRecords() {
var selected = [];
$('#myTable input:checked').each(function () {
selected.push($(this).attr('id'));
});
$.ajax({
url: '/Home/DeleteRecords',
type: 'POST',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: { "json": JSON.stringify(selected) },
error: function () {
alert("Error!");
}
});
}
我的家庭控制器方法:
[HttpPost]
public IActionResult DeleteRecords(string AllId)
{
return null;
}
发送ajax请求数据,如下所示,
$.ajax({
url: '/Home/DeleteRecords',
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(selected),
error: function () {
alert("Error!");
}
});
并接收实际的数据
[HttpPost]
public IActionResult DeleteRecords(string[] AllId)
{
return null;
}
它需要通过动作。 希望对您有帮助。
在Post中将您的属性命名为与您的方法相同的名称,以便自动绑定将其选中。 -事实证明,这对于单个对象无关紧要。
.net无法解析您正在创建的数据对象,请将JSON.stringify直接用于数据有效负载。
注意:由于要传递字符串数组,因此Home控制器中的更改。
function deleteRecords() {
var selected = [];
$('#myTable input:checked').each(function () {
selected.push($(this).attr('id'));
});
$.ajax({
url: '/Home/DeleteRecords',
type: 'POST',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(selected),
error: function () {
alert("Error!");
}
});
}
对于家庭控制器方法:
[HttpPost]
public IActionResult DeleteRecords(string[] AllId)
{
return null;
}
加上您问题中的代码,请尝试以下操作以获取json
System.Web.Context.Current.Request.Form["json"]
如果您需要更多优美的东西,则需要在参数签名中放入FromBody属性
DeleteResults([FromBody] string json)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.