我在表单上有一个数据表,我允许通过Telerik MVC网格控件进行编辑,如下所示:
@model System.Data.DataTable
@(Html.Kendo().Grid<dynamic>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(column.ColumnName);
}
columns.Command(cmd => cmd.Edit());
})
.Editable(ed => ed.Mode(GridEditMode.PopUp))
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
var id = Model.Columns[0].ColumnName;
model.Id(id);
}
)
.Read(read => read.Action("Read", "Data"))
.Update(update => update.Action("Update", "Data"))
)
)
因此模型是一个数据表但是一个“动态”类型(必须是动态的,因为数据表没有固定的列)。我可以通过弹出的Telerik控件对数据进行更改,这些更改在表单上可见。
问题是,如何回发整个表格以便保留? 我有一个开始表单块,如下所示:
@using (Html.BeginForm("SaveData", "Data", FormMethod.Post))
{
//@Html.HiddenFor(x => x);
<button type="submit">Save</button>
}
但每当我在控制器上调试SaveData方法时,都不会回发任何FormCollection值。我知道我需要在回复中添加回复但是@ Html.HiddenFor(x =&gt; x);即回发整个模型会引发错误。