我的 ViewModel 包含一些对象(IEnumerable)的集合。集合中的项目按行显示在标签中。当我提交表单时,它会触发提交 jQuery 函数来验证自己。我需要从显示的表中获取值并转换为对象。
看一下这个:
//
// the table to display my collection content
<div id="publications">
Items to publish:
<table>
<thead><tr>
<td></td>
<td>Item</td>
</tr></thead>
<tbody>
@{
for (int counter = 0; counter < Model.Publications.Count; ++counter)
{
<tr>
<td>
@Html.HiddenFor(m => Model.Publications[counter].ID)
@Html.CheckBoxFor(m => Model.Publications[counter].Selected)
</td>
<td>
@Html.HiddenFor(m => Model.Publications[counter].ItemID)
@Html.DisplayTextFor(m => Model.Publications[counter].ItemDescription)
</td>
</tr>
}
}
</tbody>
</table>
</div>
//
// The Publication ViewModel
public class PublicationViewModel {
public string ID { get; set; }
public bool Selected { get; set; }
public string ItemID { get; set; }
public string ItemDescription { get; set; }
}
//
// The main ViewModel
public class MainViewModel {
public string ID { get; set; }
public string Name { get; set; }
public IEnumerable<PublicationViewModel> Publications { get; set; }
}
问题是如何使用 jQuery 将该表转换为序列化对象。十分感谢大家!