2014-09-23 159 views
1

所以我給了一個數字機構的html,我需要轉換爲MVC。據我所知,Html.CheckboxFor(..)創建了一個額外的隱藏輸入字段,以將未勾選的複選框捕獲爲false。MVC 5 Html幫手CheckBoxFor不能在剃刀部分中選擇

但是在我的頁面上,我無法選中我的複選框。如果我在Firebug中刪除<input type="hidden....>,我可以選中複選框。 (正如我不能點擊複選框,使其在視覺上選擇)

生成的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> 

任何人有任何想法?我不是百分之百要包含在這篇文章中以幫助找到答案。

剃刀視圖包含:

<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> 

我能得到的是價值在我的動作控制器,但我不明白爲什麼這樣做的模型綁定的方式是行不通的。

+0

你什麼意思,你可以選擇它 - 你不能選擇或取消選擇它屏幕上?或者它不能正確回發? – 2014-09-23 03:53:01

+0

我無法在屏幕上檢查並取消選中它 – Jen 2014-09-23 04:02:59

+0

你有任何可能干擾它的javascript嗎? – 2014-09-23 04:04:48

回答

1

我有同樣的問題。 Checkboxfor從模型中獲取他的名字。 的問題是:

當兩個不同的型號具有相同的性質, 並在同一頁面都有一個Checkboxfor,發生 所描述的問題。

在我的情況

,組織模型(1)和contactperson模型(2)具有相同的特性:

公共布爾IsActive {獲得;組; }

SOLUTION 給他們一個唯一的ID,在我的情況:

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

+0

我無法再測試 - 但似乎是問題所在。謝謝 :) – Jen 2016-11-13 23:40:21