将列表作为参数传递给 MVC 控制器
Pass List as parameter to MVC controller
我尝试在我的代码中到处做一件事情,但由于未知原因我不能在这里做。
我尝试将对象列表传递给我的控制器,但我无法将我的数组映射到我的列表中。
查看:
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
}
型号:
public class SelectedInterventionsViewModel
{
public int Id { get; set; }
public string Title { get; set; }
public DateTime ToDoBefore { get; set; }
public DateTime PlannedDate { get; set; }
}
我想念什么?
我在你的代码中找不到任何遗漏的东西,但我已经尝试了你提到的相同代码并找到了集合。 C# 部分不能有错误,视图中可能存在一些问题。我在 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>
我的控制器方法上的 [HttpPost]
装饰解决了这个问题。不要问我为什么。通常我不设置它并且它有效。为什么调用了方法但没有发送参数?我也不知道...
我尝试在我的代码中到处做一件事情,但由于未知原因我不能在这里做。
我尝试将对象列表传递给我的控制器,但我无法将我的数组映射到我的列表中。
查看:
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
}
型号:
public class SelectedInterventionsViewModel
{
public int Id { get; set; }
public string Title { get; set; }
public DateTime ToDoBefore { get; set; }
public DateTime PlannedDate { get; set; }
}
我想念什么?
我在你的代码中找不到任何遗漏的东西,但我已经尝试了你提到的相同代码并找到了集合。 C# 部分不能有错误,视图中可能存在一些问题。我在 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>
我的控制器方法上的 [HttpPost]
装饰解决了这个问题。不要问我为什么。通常我不设置它并且它有效。为什么调用了方法但没有发送参数?我也不知道...