我想知道是否有任何内置的方式在ASP.NET MVC中有一个模型属性包含在绑定,但不会使模型无效if绑定失败。说我有支持的jqGrid CRUD操作以下简化模型:ASP.NET MVC保持ModelState在失败的属性绑定上有效
public class JqGridCRUDDTO
{
public JqGridCRUDOperation oper {get; set;}
public int? id {get;set;}
}
当模型表示“添加”操作(由oper
属性指定),的jqGrid帖所包含的HTML元素的id属性为id
(我相信就是这样)。在这种情况下,绑定id属性失败,使ModelState
无效。但id
财产的绑定应该只会失败,当我不需要它(我只需要一个记录ID“编辑”和“删除”操作)。我知道,理想情况下,我应该为每个操作都有一个单独的模型,但JqGrid似乎更适合将所有CRUD操作发送到单个URL,因此我不确定单独的模型方法是否会导致到最简单的解决方案。修改我的客户端脚本也是如此,以便JqGrid在添加时发送一个整数值 - 我知道这是可能的,但这会增加客户端脚本的复杂性。我宁愿在服务器端尽可能多地管理复杂性。
如果没有建立我要求的内容,我想听听其他人会怎么做。
是啊,我看到其他问题和答案,表明我应该在添加时获得“_empty”,但我实际上获得了“jqg1”。 – grin0048 2014-09-05 18:30:16
@ grin0048:可能你使用'inlineNav'进行内联编辑,或者直接调用'addRow'方法(或者你可能用''formatter:“actions”)。在这种情况下,你可以指定'addRow'的'rowID'参数作为一个返回'null'的函数,或者你可以使用'serializeRowData'回调函数来移除'id'值,该值的值是以“jqg”开始的('$ .jgrid.uidPref ')。无论如何,如果您遇到实现问题,您应该在Javascript代码中附加问题的文本,其中显示了如何使用行编辑和添加操作。 – Oleg 2014-09-05 19:02:23
我能够删除serializeRowData中的'Id'参数。谢谢。 – grin0048 2014-09-05 20:24:55