Asp.net core 带有复选框布尔值的razor页面处理程序未绑定
我有一个有几个输入的表单。我使用Jquery的form.serialize按照ajax发送表单。“网络”选项卡显示数据已成功发送welcomesCritiques:on,complete:on 在服务器端,我在自定义处理程序中捕获这些输入Asp.net core 带有复选框布尔值的razor页面处理程序未绑定,asp.net-core,razor-pages,asp.net-core-2.2,Asp.net Core,Razor Pages,Asp.net Core 2.2,我有一个有几个输入的表单。我使用Jquery的form.serialize按照ajax发送表单。“网络”选项卡显示数据已成功发送welcomesCritiques:on,complete:on 在服务器端,我在自定义处理程序中捕获这些输入 public async Task<IActionResult> OnPostLoadBooksAsync(string search, bool welcomesCritiques, bool complete, int startIndex,
public async Task<IActionResult> OnPostLoadBooksAsync(string search, bool welcomesCritiques, bool complete, int startIndex, int amount)
字符串和整数绑定得非常好。但这些嘘声总是假的。当我用一根线替换布尔时,我就开始了
这是一个已知的问题吗?我怎样才能成为一个傻瓜
谢谢你的帮助 要绑定到布尔值,需要将该值设置为true,而不是默认值,默认值为on:
<input type="checkbox" name="welcomesCritiques" value="true" />
仅当选中复选框时,才会提交该值。如果没有为handler参数提供值,它将默认为false
有关Razor表单中复选框的更多信息,请参见此处:要绑定到布尔值,您需要将值设置为true,而不是默认值,该值处于启用状态:
<input type="checkbox" name="welcomesCritiques" value="true" />
仅当选中复选框时,才会提交该值。如果没有为handler参数提供值,它将默认为false
更多关于Razor表单中的复选框的信息,请参见此处:哦,我明白了,真奇怪。我实际上访问了该网站,但没有意识到我必须使用一个带有真/假复选框的隐藏字段。案件结案,非常感谢@Doidel隐藏字段由标记帮助器生成。如果不使用标记帮助器,则不需要包含隐藏字段。但不知何故,我必须将输入映射到true/false,否则处理程序将不会解析它,对吗?不一定是隐藏字段,但在某种程度上我必须这样做。或者,在处理程序中将我的布尔值作为字符串接受,并将其转换为我自己的。@Doidel否-您将value属性预设为true。看编辑后的答案啊,我明白了,谢谢你的澄清!很有魅力,非常感谢!哦,我明白了,真奇怪。我实际上访问了该网站,但没有意识到我必须使用一个带有真/假复选框的隐藏字段。案件结案,非常感谢@Doidel隐藏字段由标记帮助器生成。如果不使用标记帮助器,则不需要包含隐藏字段。但不知何故,我必须将输入映射到true/false,否则处理程序将不会解析它,对吗?不一定是隐藏字段,但在某种程度上我必须这样做。或者,在处理程序中将我的布尔值作为字符串接受,并将其转换为我自己的。@Doidel否-您将value属性预设为true。看编辑后的答案啊,我明白了,谢谢你的澄清!很有魅力,非常感谢!