为什么 Asp.Net 抱怨在未选中复选框时 Ext JS3 没有将 bool 传递给操作?

发布于 2024-12-11 05:23:46 字数 687 浏览 0 评论 0原文

在我的 Ext Js3 应用程序中,我创建了一个带有复选框的表单,其中包含以下代码:

    }, {
        xtype: 'checkbox',
        fieldLabel: 'Is Automation Failure',
        inputValue: 'true',
        name: 'isAutomationFailure'
    }, {

当我选中该复选框时,它会正确地将 isAutomationFailure: true 发送到我的 Asp.NET MVC 操作,一切顺利。但是,如果我不选中该复选框,则会给出:

参数字典包含方法的不可空类型“System.Boolean”的参数“isAutomationFailure”的空条目

我知道如果未选中复选框,复选框不会发送任何内容,但我的印象是非-specified bool 如果没有指定则默认为 false。我的操作具有以下签名:

    public virtual JsonResult SetTestRunFailureInfo(int runId, bool isAutomationFailure, int? tfsWorkitemId)

如何使其正常工作(无需将参数转换为可为空类型)?

In my Ext Js3 application I created a form with a checkbox with the following code:

    }, {
        xtype: 'checkbox',
        fieldLabel: 'Is Automation Failure',
        inputValue: 'true',
        name: 'isAutomationFailure'
    }, {

When I check the checkbox it correctly sends isAutomationFailure: true to my Asp.NET MVC action, and life is good. However, if I leave the checkbox unchecked, it gives:

The parameters dictionary contains a null entry for parameter 'isAutomationFailure' of non-nullable type 'System.Boolean' for method

I understand that checkboxes do not send anything over if a checkbox isn't checked, but I was under the impression that a non-specified bool would default to false if not specified. My action has the following signature:

    public virtual JsonResult SetTestRunFailureInfo(int runId, bool isAutomationFailure, int? tfsWorkitemId)

How can I get this to work (without having to resort to turning the parameter into a nullable type)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

多孤肩上扛 2024-12-18 05:23:46

bool 更改为 bool? 并将 null 视为 false。这是 Ext JS 的一个“功能”。

isAutomationFailure = isAutomationFailure ?? false;

Change your bool to bool? and treat null as false. That's a "feature" of Ext JS.

isAutomationFailure = isAutomationFailure ?? false;
素手挽清风 2024-12-18 05:23:46

我建议不要在复选框上使用 inputValue 属性。这解释了如何在表单提交上传递该值: http://www.w3schools.com/ jsref/prop_checkbox_value.asp

相反,您应该使用 'checked' 属性;

 }, {
    xtype: 'checkbox',
    fieldLabel: 'Is Automation Failure',
    checked: true,
    name: 'isAutomationFailure'
}, {

I would suggest not using the inputValue property on a checkbox. This explains how the value would be passed on a form submit: http://www.w3schools.com/jsref/prop_checkbox_value.asp

Instead you should use the 'checked' property;

 }, {
    xtype: 'checkbox',
    fieldLabel: 'Is Automation Failure',
    checked: true,
    name: 'isAutomationFailure'
}, {
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文