Jquery 将列表作为参数传递给MVC控制器
我尝试在代码中的任何地方做一件事,但不知为什么我不能在这里做 我试图将对象列表传递给控制器,但无法将数组映射到列表中 视图:Jquery 将列表作为参数传递给MVC控制器,jquery,asp.net-mvc-3,Jquery,Asp.net Mvc 3,我尝试在代码中的任何地方做一件事,但不知为什么我不能在这里做 我试图将对象列表传递给控制器,但无法将数组映射到列表中 视图: var interventions = [ { Id: 1, Title: 'Intervention 1', ToDoBefore: new Date(), PlannedDate: new Date() }, { Id: 2, Title: 'Int
var interventions = [
{
Id: 1,
Title: 'Intervention 1',
ToDoBefore: new Date(),
PlannedDate: new Date()
},
{
Id: 2,
Title: 'Intervention 2',
ToDoBefore: new Date(),
PlannedDate: new Date()
},
]
$.ajax({
url: '/Home/AffectToSubcontractors',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
type: 'POST',
data: JSON.stringify(interventions),
success: function (result) {
debugger;
}
});
控制器:
public PartialViewResult AffectToSubcontractors(List<SelectedInterventionsViewModel> interventions)
{
// Do something
}
我错过了什么?我找不到您的代码中缺少的任何东西,但我尝试了与您提到的相同的代码并找到了集合。c#part不可能有错误,可能存在一些问题。我在index.chtml上尝试了如下操作,请在干净的视图中尝试您的代码
@ViewBag.Title Home
<div>
<div>
<script >
var interventions = [
{
Id: 1,
Title: 'Intervention 1',
ToDoBefore: new Date(),
PlannedDate: new Date()
},
{
Id: 2,
Title: 'Intervention 2',
ToDoBefore: new Date(),
PlannedDate: new Date()
},
]
$.ajax({
url: '/Home/AffectToSubcontractors',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
type: 'POST',
data: JSON.stringify(interventions),
success: function (result) {
debugger;
}
});
</script>
</div>
</div>
@ViewBag.Title主页
风险值干预=[
{
Id:1,
标题:“干预1”,
ToDoBefore:新日期(),
计划日期:新日期()
},
{
Id:2,
标题:“干预2”,
ToDoBefore:新日期(),
计划日期:新日期()
},
]
$.ajax({
url:“/Home/AffectToSubcontractors”,
contentType:'application/json;charset=utf-8',
数据类型:“json”,
键入:“POST”,
数据:JSON.stringify(干预),
成功:功能(结果){
调试器;
}
});
控制器方法上的[HttpPost]
装饰解决了问题。别问我为什么。通常我不会设置它,它会工作。为什么调用方法但不发送参数?我也不知道……您遗漏了错误的详细信息和您期望的描述。哦。当然可以。我的控制器中的干预
参数是一个空列表,而不是两个列表。您的方法是否标记为[HttpPost]
?我尝试了这个方法,但没有效果。我也试着标记参数[FromBody]
,但结果是一样的……对不起,我忘了回到这里。。。我的代码工作我在控制器方法上添加了[HttpPost]
标记,之后一切都很好。我不知道为什么,通常我没有提到它,它是有效的…默认值是HTTPGET,所以通过设置HttpPost属性,您将其改为HttpPost。
@ViewBag.Title Home
<div>
<div>
<script >
var interventions = [
{
Id: 1,
Title: 'Intervention 1',
ToDoBefore: new Date(),
PlannedDate: new Date()
},
{
Id: 2,
Title: 'Intervention 2',
ToDoBefore: new Date(),
PlannedDate: new Date()
},
]
$.ajax({
url: '/Home/AffectToSubcontractors',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
type: 'POST',
data: JSON.stringify(interventions),
success: function (result) {
debugger;
}
});
</script>
</div>
</div>