2

そのため、MVC に変換する必要がある HTML をデジタル エージェンシーから受け取りました。Html.CheckboxFor(..) は追加の非表示の入力フィールドを作成して、チェックボックスの非選択を false としてキャプチャすることを理解しています。

ただし、私のページではチェックボックスを選択できません。<input type="hidden....>Firebugを削除すると、チェックボックスを選択できます。(チェックボックスをクリックして視覚的に選択することはできません)

生成される html は次のとおりです。

(私に提供されたhtml)

<div class="terms well">
    <div class="checkbox">
        <label class="checkbox-inline">
            <input type="checkbox" id="authorize" name="authorize">
            <span class="checkbox-display"><span class="checkbox-display-inner fa fa-check"></span></span>
            <span class="checkbox-label">I accept full responsibility for the information I provide on this form.</span>
        </label>
    </div>
</div>

(html ヘルパーによって生成された html - スタイリングがまだ機能するかどうかわからないので、ラベルを使用しようとはしませんでした)。

<div class="terms well">
    <div class="checkbox">
        <label class="checkbox-inline">
            <input type="checkbox" value="true" name="AuthorisePayment" id="AuthorisePayment"><input type="hidden" value="false" name="AuthorisePayment">
            <span class="checkbox-display"><span class="checkbox-display-inner fa fa-check"></span></span>
            <span class="checkbox-label terms-credit" style="display: inline-block;">I accept full responsibility for information and authorisations I provide on this form.</span>
        </label>
    </div>
</div>

誰でもアイデアはありますか?答えを見つけるために、この投稿に何を含めるかは 100% ではありません。

カミソリ ビューには次のものが含まれます。

<div class="terms well">
    <div class="checkbox">
        <label class="checkbox-inline">
            @Html.CheckBoxFor(model => model.AuthorisePayment)
            <span class="checkbox-display"><span class="checkbox-display-inner fa fa-check"></span></span>
            <span class="checkbox-label terms-credit">@Editable(x => x.PaymentTemplate.CreditCardTerms)</span>
        </label>
    </div>
 </div>

アクションコントローラーのフォームから値を取得することはできましたが、モデルバインディングの方法が機能しない理由がわかりません。

4

2 に答える 2

3

私も同じ問題を抱えていました。Checkboxfor は、モデルから彼の名前を取得します。問題は:

2 つの異なるモデルに同じプロパティがあり、両方とも同じページに Checkboxfor がある場合、説明されている問題が発生します。

私の場合、組織モデル (1) と連絡担当者モデル (2) は同じプロパティを持ちます。

public bool IsActive { get; 設定; }

私の場合、一意の ID を指定します。

(1): @Html.CheckBoxFor(model => model.IsActive).HtmlAttributes(new { id = "organisation_active" } ) (2):@Html.CheckBoxFor(model => model.IsActive).HtmlAttributes(new { id = "contact_active" } )

于 2016-10-27T14:57:32.333 に答える
0

私の解決策は、コントローラに対して常に false となる隠しタイプの入力を削除することでした。javascript $("input [name = 'Inactive'] [type = 'hidden']") で取りました。削除する (); そして、それは正常に機能しました。

于 2021-03-30T23:09:10.090 に答える