c# - Telerik Grid,将 AdditionalFileds 绑定到远程验证
问题描述
问题与这个问题有点相似,但是它已经 7 岁了,也许事情发生了变化。
我有一个 EmplacementDTO (Place) 对象,我在 Telerik Grid(今天最新的 asp.net 核心)中表示它具有这个
[Remote("KeyExist", "Emplacements", AdditionalFields = nameof(Id))]
public string Nom { get; set; }
它检查是否存在另一个 Nom(不同于已编辑(带有 Id)的 Nom)。如果 id 为零,则表示对象已创建,如果不是,则表示对象处于编辑模式。
网格定义如下:
@(Html.Kendo()
.Grid<EmplacementDTO>()
.Name("Emplacements")
.Columns(columns =>
{
columns.Bound(c => c.Id).Hidden();
columns.Bound(c => c.Nom);
columns.Command(command => { command.Destroy(); });
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Navigatable()
.Events(events => {events.Sort("onSort");})
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Events(events => events.Error("onGridError"))
.Model(model =>
{
model.Id(s => s.Id);
model.Field(s => s.Id);
model.Field(s => s.Nom);
})
.Read(read => read.Action("Read", "Emplacements"))
.Create(update => update.Action("BatchCreate", "Emplacements"))
.Update(update => update.Action("BatchUpdate", "Emplacements"))
.Destroy(update => update.Action("BatchDestroy", "Emplacements"))
)
)
我在控制器里
[AcceptVerbs("GET", "POST")]
public IActionResult KeyExist(
[Bind(Prefix = nameof(EmplacementDTO.Nom))] string nom,
[Bind(Prefix = nameof(EmplacementDTO.Id))] int id)
{
if (_emplacementService.KeyExist(nom, id))
{
return Json($"The place '{nom}' exists already, please choose another !");
}
return Json(true);
}
然而问题是id
总是0
。如何正确地将其绑定到动作?