1

初めてここに来て、何か間違ったことを書いてしまったらごめんなさい...

このHTMLコードがあります。FormCollectionのすべてのチェックボックスを取得する必要があります

 [HttpPost]
      public ActionResult teste2(FormCollection collection)
            {
                var names = collection.AllKeys.Where(c => c.StartsWith("ckb") &&
                            collection.GetValue(c) != null &&
                            collection.GetValue(c).AttemptedValue == "1");

                return View();

            }

しかし、私はこの結果しか得られません:allKeysstring[0]。Ajax / Jasonや、Webで見つけた他の提案を使用してこれを実行しようとしましたが、同じ結果が得られます。私には何が悪いのかという考えはありません。
私を助けてください!=]

@using (Html.BeginForm())
{ 
    <ul>
        @foreach (CWGD.BE.funcionalidade func0 in Model.func.Where(q => q.funcionalidade_pai == null))
        { 
            <li>
                <input type="checkbox" name="ckb_@(func0.funcionalidade_id)"/>
                @func0.funcionalidade_nome
                <ul>
                    @foreach (var func1 in Model.func.Where(q => q.funcionalidade_pai == func0.funcionalidade_id))
                    {

                        <li>
                            <input type="checkbox" name="ckb_@(func1.funcionalidade_id)"/>
                            @func1.funcionalidade_nome
                            <ul>
                                @foreach (var func2 in Model.func.Where(q => q.funcionalidade_pai == func1.funcionalidade_id))
                                {

                                    <li>
                                        <input type="checkbox" name="ckb_@(func2.funcionalidade_id)" id="ckb_@(func2.funcionalidade_id)" />
                                        @func2.funcionalidade_nome</li>

                                }
                            </ul>
                        </li>                
                    }
                </ul>
            </li>        
        }
    </ul>
    <input type="submit" value="Save" />
}
4

1 に答える 1

0

最初の仕事は、Fiddlerを起動して、値が実際にサーバーに送信されるかどうかを確認することです。これは、同様の問題が発生するたびに使用する必要がある一般的なアドバイスです。

あなたの場合、問題は<checkbox>タグにvalue属性が含まれていないため、サーバーに空の値を送信するだけである可能性があります。

Html.BeginFormまた、フォームが正しいターゲットアクションを生成するように、に引数を指定する必要があります。

チェックされていないチェックボックスは、POSTデータでサーバーに送信されないことにも注意してください。

于 2012-11-14T12:47:29.310 に答える