2017-12-15 8 views
0

boolの一部がChecked(trueに設定)され、無効になっているMVCがあります。フォームをPOSTすると、常にFalseとして渡されます。どのようにしてboolの元の値(この場合はTRUE)を決定するのですか?MVC C#無効boolが偽として保存される

答えて

2

フォームをPOSTすると、フォームは常にFalseとして渡されます。

実際に、彼らはすべてのでを送信されていません。これは、Fiddlerのようなツールを使ってワイヤで送られたJSONを見ると分かります。

無効なフィールドコントロールは、フォームデータから除外されています。 disabledの代わりにreadonlyにしてください。

documentationを参照してください:

は、要素が無効になっているかいないかどうかを示します。この属性をtrueに設定すると、要素は無効になります。無効にされた要素は、通常、グレーアウトされたテキストで描画されます。要素が無効になっている場合、ユーザーの操作に応答せず、フォーカスできず、コマンドイベントは発生しません。 フォーム要素の場合、それは

を提出されることはありませんがreadonlyにこれを比較します

trueに設定した場合、ユーザは要素の値を変更することはできません。ただし、値はスクリプトによって変更される可能性があります。

+0

'readonly'チェックボックスはありません( 'readonly'はまったく影響がなく、ユーザーはそれをクリックして状態を切り替えることができます) –

0

ASP3でプログラミングするときに同じエラーが発生しました。 ページをポストする直前にチェックボックスを再度有効にする必要があるかもしれません。

また、Amyが言ったように読み取り専用に変更することもできます。

関連する問題