Почему Asp.Net жалуется, что Ext JS3 не передает bool в действие, когда флажок не установлен? - PullRequest
1 голос
/ 20 октября 2011

В своем приложении Ext Js3 я создал форму с флажком со следующим кодом:

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

Когда я установил флажок, он правильно отправляет isAutomationFailure: true моему действию MVC Asp.NET и жизньэто хорошо.Однако, если я оставлю флажок не установленным, он выдаст:

Словарь параметров содержит пустую запись для параметра 'isAutomationFailure' не обнуляемого типа 'System.Boolean' для метода

Я понимаю, что флажки не отправляют ничего, если флажок не установлен, но у меня сложилось впечатление, что для неопределенного bool по умолчанию будет значение false, если оно не указано.Мое действие имеет следующую подпись:

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

Как мне заставить это работать (не прибегая к превращению параметра в обнуляемый тип)?

Ответы [ 2 ]

1 голос
/ 21 октября 2011

Измените bool на bool? и обработайте null как false.Это «особенность» Ext JS.

isAutomationFailure = isAutomationFailure ?? false;
0 голосов
/ 21 октября 2011

Я бы предложил не использовать свойство inputValue для флажка. Это объясняет, как значение будет передано при отправке формы: http://www.w3schools.com/jsref/prop_checkbox_value.asp

Вместо этого вы должны использовать свойство 'selected';

 }, {
    xtype: 'checkbox',
    fieldLabel: 'Is Automation Failure',
    checked: true,
    name: 'isAutomationFailure'
}, {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...