我正在尝试将具有复杂类型的视图模型传递给我的控制器。我已经从头到尾研究了这个主题的所有内容,但我仍然感到困惑。
问题:
当我单击提交按钮时,视图模型被传入,但 MacroInfo 属性列表为空。
更新索引视图模型
public class UpdateIndexViewModel
{
//This view model will become larger later
public List<MacroInfo> MacrosToUpdate { get; set; }
}
宏信息
public class MacroInfo
{
public bool IsSelected { get; set; }
public string FullPath { get; set; }
public string Id { get; set; }
public DateTime CreatedAt { get; set; }
}
控制器动作
[HttpPost]
public ActionResult Submit(UpdateIndexViewModel updateIndexViewModel)
{
//updateIndexViewModel.MacrosToUpdate is null ??
}
索引视图
@model EplanInterface.Core.ViewModels.UpdateIndexViewModel
@using (Html.BeginForm("Submit", "Update", FormMethod.Post))
{
<table style="width:100%" , class="table-bordered">
<thead>
<tr>
<th>#</th>
<th>Macro Path</th>
<th>Created At</th>
<th>Update</th>
</tr>
</thead>
@for (int i = 1; i < Model.MacrosToUpdate.Count; i++)
{
<tr>
<td>@Html.TextBoxFor(m =>Model.MacrosToUpdate[i].FullPath)</td>
<td>@Html.TextBoxFor(m => Model.MacrosToUpdate[i].CreatedAt)</td>
<td>@Html.CheckBoxFor(b => Model.MacrosToUpdate[i].IsSelected)</td>
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Submit"/>
}
我尝试过的
我尝试更改传入的控制器操作属性List<MacroInfo> macrosToUpdate,但执行此操作时该属性仍然为空。
Chrome 网络检查
最后的评论
我不确定是否需要使用 AJAX post 来执行此操作,或者我的变量名称格式是否正确。我很确定这是一个我不理解的具有约束力的问题。
如果有人能指出我正确的方向,我将非常感激。
慕神8447489
相关分类