我注意到使用EditorFor方法创建的复选框,隐藏的输入始终伴随每个创建的复选框,并且其值始终设置为FALSE。我已经在这里阅读了一些有关此内容的帖子,并了解隐藏的输入是必需的,因为否则在POST请求期间,对于未经检查的框,根本不会发送有关复选框值的信息。 (我希望我能正确理解)
当我查看来自POST请求的表单数据时,我得到奇怪的(但是预期的)结果,即复选框的值同时为TRUE和FALSE:由于正在检查框而为TRUE,并且为FALSE由于隐藏输入中的值。例如,在变量" isActive"在我的一个表单上,我在POST数据中看到了这一点:
isActive: true
isActive: false
那么,这是什么?既然它是假的之前是真的,那不会意味着该值总是假的,因为隐藏字段的值总是会覆盖复选框的值吗? EditorFor放置输入元素和隐藏元素(首先隐藏的元素,始终设置为false)的顺序对我没有任何意义。有人可以向我解释这背后的逻辑吗?
谢谢!
答案 0 :(得分:2)
模型编辑器将它们放在正确的位置,以便在映射期间检查输入框的值将覆盖复选框的值。它真的不是很神秘吗?