检测您是否在EditorTemplate视图中添加或更新

时间:2012-09-10 15:41:35

标签: asp.net-mvc asp.net-mvc-3 razor telerik-mvc mvc-editor-templates

我有一个我正在使用的视图作为EditorTemplate。我想限制用户可以编辑的内容与他们可以插入的内容。我的EditorTemplate View被输入为SomeModel,我知道如果SomeModel.Id不是0,那意味着我们正在进行编辑,否则我们正在进行插入。我以为我能够做类似的事情:

@if (Model.Id == 0) 
{ 
  //show "insert-specific" UI 
}

但出于某种原因,当我通过Model.检查时,我总是得到0,空值,默认值等,而Html帮助方法很好地获取真值,例如:

@Html.TextBoxFor(model => model.Id)

同样,Model.Id的值始终为0,即使@Html.TextBoxFor(model => model.Id)显示其他值也是如此。

有没有更好的方法来实现我想要做的事情?

注意:不确定它是否重要,但我正在使用Telerik MVC Grid控件。它似乎不允许插入与编辑的不同视图。

1 个答案:

答案 0 :(得分:1)

哟,

如果您正在使用Ajax绑定,则EditorTemplate会被序列化并发送到客户端,每次编辑记录或添加新记录时,都会使用不同的值重新填充它。 如果您使用的是ajax绑定,则可以使用OnEdit客户端事件并检查 e.mode 编辑还是插入。然后,您可以使用JavaScript操作该编辑器。