WebGrid
分页链接在所有情况下都能正常工作,除了一个(我注意到)。
CheckBoxFor
在 MVC 中使用时,它会为同一个字段创建一个input[type=hidden]
和一个input[type=check-box]
,以便它可以处理状态。因此,如果您有一个名为的字段X
并在方法中提交您的表单GET
,您最终会得到一个如下所示的 URL:
默认模型绑定器可以理解这些多个实例操作系统X
并找出它的价值。
当您尝试对WebGrid
. 它的行为是尝试捕获当前请求参数并在分页链接中重新传递它们。但是,由于不止一个X
,它将通过X=false,true
而不是预期的X=false
或X=false&X=true
这是一个问题,因为X=false,true
无法正确绑定。它将在动作开始之前触发模型绑定器中的异常。
有什么办法可以解决吗?
编辑:
这似乎是一个非常具体的问题,但事实并非如此。几乎每个带有复选框的搜索表单都会破坏 WebGrid 分页。(如果您使用的是 GET)
编辑2:
我认为我唯一的两个选择是:
- 构建我自己的 WebGrid 分页器,它在为分页链接传递参数时更聪明
- 构建我自己的理解
false,true
为有效的布尔模型绑定器