ASP.NET Core中如何在Telerik Grid行中传递隐藏字段?
解决方案
你只需在Grid的DataSource模型配置中显式声明需要保留的隐藏字段,即可让这些值在更新操作时正常提交到后端,无需额外自定义逻辑。
修改后的核心代码如下:
@(Html.Kendo() .Grid(Model) .Name("Orders") .Columns(columns => { columns.Bound(c => c.Name).Width(190); columns.Bound(c => c.CreatedById).Hidden(); columns.Bound(c => c.ModifiedById).Hidden(); columns.Command(command => { command.Destroy(); }).Width(100); }) .Editable(editable => editable.Mode(GridEditMode.InCell)) .DataSource(dataSource => dataSource .Ajax() .Batch(true) .PageSize(20) .ServerOperation(false) .Events(events => events.Error("error_handler")) .Model(model => { model.Id(s => s.Id); // 显式声明隐藏字段,Editable(false)禁止用户修改,同时保留字段值在数据源中 model.Field(s => s.CreatedById).Editable(false); model.Field(s => s.ModifiedById).Editable(false); }) .Create(update => update.Action("BatchCreate", "Orders")) .Read(read => read.Action("BatchRead", "Orders")) .Update(update => update.Action("BatchUpdate", "Orders")) .Destroy(update => update.Action("BatchDestroy", "Orders")) )
注意事项
Hidden()配置仅隐藏前端列展示,字段值会一直保留在客户端数据源中,配合上述模型声明即可正常提交。- 不要使用
Visible(false)配置列,该配置会直接跳过字段的客户端数据源初始化,无法传递值。 - 新增行场景如果需要给隐藏字段设置默认值,可在字段配置中补充
DefaultValue()方法,示例:model.Field(s => s.CreatedById).DefaultValue(当前登录用户ID).Editable(false)。
内容的提问来源于stack exchange,提问作者serge
相关产品推荐
相关产品推荐

