2014-12-04 24 views
0

我在MVC 4.0中創建了一個採用Form中的Request.Form(Namevaluecollection)的方法。我在複選框和單選按鈕中遇到了以下問題。複選框未進入Request.Form(NameValueCollection)

我添加動態複選框或單選按鈕與下面的代碼,以及我在我的控制器方法的一個設置的形式值集合作爲「NameValueCollection formsCollection = Request.Form」,但複選框或單選按鈕未在「formsCollection.AllKeys」未來,而其他控制像文本框,文本區域,下拉菜單將正常工作。

<form> 
    <div class="divLeft div1" id="div83ac0fad-41d5-40e5-99cd-f99ea8877b04"> 
     <div class="control-group"> 
      <label class="control-label">Checkbox 2</label> 
     <div class="controls"> 
      <div id="cfCheckbox"> 
       <label>Option 1</label> 
       <input type="checkbox" id="checkbox83ac0fad-41d5-40e5-99cd-f99ea8877b04" name="checkbox83ac0fad-41d5-40e5-99cd-f99ea8877b04">&nbsp; 
       <label>Option2</label> 
       <input type="checkbox" id="checkbox83ac0fad-41d5-40e5-99cd-f99ea8877b04" name="checkbox83ac0fad-41d5-40e5-99cd-f99ea8877b04">&nbsp; 
      </div> 
      </div> 
     </div> 
    </div> 
</form> 
+0

刪除Id或使它們唯一。只要保持名字平等。 – dotnetstep 2014-12-04 15:45:08

+0

這沒有任何意義。你有兩個複選框相同的名稱。由於未經檢查的複選框不會回傳,因此您可能不會發回任何回覆(均未選中),2個重複內容或僅有1個回覆(您怎麼知道哪一個被選中了)。瞭解MVC的基礎知識,特別是如何使用視圖模型和強類型助手來生成正確的html,並在回發時綁定到模型。 – 2014-12-04 23:07:29

回答

0

你有id="checkbox83ac0fad-41d5-40e5-99cd-f99ea8877b04"兩個的複選框和主divID in HTML應該是唯一的。

刪除複選框上的ID。這應該可以解決你的問題。

FormsCollection使用Name進行結合,而不是ID。所以你並不需要你的元素有ID。

+0

我從複選框中刪除了Id,但仍未成功保存。 – 2014-12-04 16:30:48

+0

我爲複選框生成唯一的ID並分配給它,但該複選框還沒有進入Request.Form – 2014-12-05 06:02:28

+0

請顯示後端代碼? – 2014-12-05 07:29:20