asp.net-core - 带有复选框 bool 值的 Razor 页面处理程序不绑定(bind)

标签 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, int amount)

字符串和整数绑定(bind)得很好。但是 bool 值总是错误的。当我用字符串替换 bool 值时,我得到“on”。

这是一个已知问题吗?如何让“on”变成 bool 值?

感谢您的帮助!

最佳答案

要绑定(bind)到 bool 值,您需要将值设置为“true”,而不是默认值,即“on”:

<input type="checkbox" name="welcomesCritiques" value="true" />

只有选中复选框时才会提交该值。如果没有为 handler 参数提供值,它将默认为 false

在此处查看有关 Razor 表单中复选框的更多信息:https://www.learnrazorpages.com/razor-pages/forms/checkboxes

关于asp.net-core - 带有复选框 bool 值的 Razor 页面处理程序不绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54341948/

相关文章:

asp.net-core-webapi - 如何从Web API调用IdentityServer UserManager方法?

c# - 如何在 .NET Core Razor 页面中使用 Setter 扩展 UserManager?

asp.net-core - 是否允许在 ASP.NET Core Controller 中使用 Task.Run?

c# - 无法在 ASP.NET Core 中使用带有 Identity 的 MySql 数据库

c# - 使用 Angular 时无法使用默认路径加载 aspnet.core 服务器路由

asp.net - 禁止 Razor Pages 属性的验证属性

javascript - 如何将参数传递给将 div 从页面模型填充到其 Razor 页面的 javascript 函数?

iis - IIS 中的 ASP.Net 核心 2.2 部署问题

angular - 具有 angular 7 多语言支持的 asp.net 核心 web api

c# - 是否有比使用 IAsyncActionFilter 授权更好的方法来授权用户是否处于角色或用户 ID 在数据库中以获取特定记录