0

同様の問題を探しましたが、この特定の問題は見つかりませんでした。簡単に解決できると思いますが、これまでに見たことがなく、試したすべてのことで解決しません。

MVC 5、C# モデル、および Razor ビューを使用します。チェックボックスに使用する約 20 個の bool エンティティを持つモデルがあります。ユーザーは、最初のフォーム挿入の一部として、最初にチェックボックスを選択します。更新を行うと、問題が残ります。

20 個のチェックボックスのうち 18 個が正常に更新されます。正しく動作する例を次に示します。もちろん、モデル名が異なることを除いて、20個すべてがこのように見えます.

 <div class="form-group ">
      <label class="d-inline-flex  customcheckPsNp  pb-1">
           @Html.CheckBoxFor(model => model._GetCompleteGroup1.MvrInFile)
           <span class="checkmarkPsNp"></span>
      </label>
      <label for="MvrInFile" class="lblPolicyServiceList ml-1">MVR In File</label>
 </div>

これは、そのために生成された html です。

 <label class="d-inline-flex  customcheckPsNp  pb-1">
      <input data-val="true" data-val-required="The MvrInFile field is required." name="_GetCompleteGroup1.MvrInFile" type="checkbox" value="true">
      <input name="_GetCompleteGroup1.MvrInFile" type="hidden" value="false">
          <span class="checkmarkPsNp"></span>
 </label>

これらのチェックボックスはコントローラーに送信され、true または false に更新されます。それらのうちの2つを除くすべて。

これは、問題のある Checkboxfors と生成された HTML の 1 つです。これが問題の場所であり、私がよく理解していない部分だと思います。生成される HTML は他とは異なります。

<div class="form-group ">
     <label class="d-inline-flex customcheckPsNp pb-1">
         @Html.CheckBoxFor(model => model._GetCompleteGroup1.LocInFile)
         <span class="checkmarkPsNp"></span>
      </label>
      <label for="LocInFile" class="lblPolicyServiceList ml-1">LOC In File</label>
</div>

コンソール要素にある生成された HTML

<label class="d-inline-flex customcheckPsNp pb-1">
       <input name="_GetCompleteGroup1.LocInFile" type="checkbox" value="true">
       <input name="_GetCompleteGroup1.LocInFile" type="hidden" value="false">
       <span class="checkmarkPsNp"></span>
</label>

ご覧のとおり、生成された HTML の違いは異なります。これを解決する理由と方法を知っている人はいますか? この html の代わりに上から同じ html を手動で作成しようとしましたが、それでもうまくいきません。私はそれがすべて整列しているモデルを見てきました。これらのブール値が存在しない場合、エラーが発生します。コントローラーは、モデル内のブール値も考慮します。

これら 2 つのチェック ボックスが、モデルと共にコントローラーに正しく送信されていないと思われます。HTML の生成方法が原因である可能性があります。私はかなり離れているかもしれませんが、チェックボックス間で異なる唯一の明確なことです.

助けてくれてありがとう。

4

1 に答える 1