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>