2014-10-30 41 views
0

我正在ASP.Net MVC中開發應用程序,並在控制器中獲取錯誤的複選框值。我使用下面的代碼顯示視圖複選框:模型類複選框值沒有得到控制器,即使它被檢查asp.net mvc

@Html.CheckBox("ENABLED", new { @class = "checkSwitch", @checked = "checked" }) 

它的相關屬性是這個

public Nullable<bool> ENABLED { get; set; } 

我使用jQuery插件,在這裏http://labs.lukepeters.me/iphone-checkbox-switch/這顯示此複選框這樣的:

(是)是這樣的: 0產生

enter image description here

HTML代碼爲它時,它的選中(否)是這樣的:

enter image description here

現在的問題是,當我打開表格此複選框最初複選框正常顯示,當我使chekcbox只檢查/取消選中一次,然後所有工作正常。意思是如果最初檢查複選框,並且使其未被選中,則保存數據,然後返回未選中(false),這是正確的。但是,假設複選框最初被選中,並且我將其設置爲未選中狀態,並且再次進行檢查,此時保存數據,而不是複選框被選中,它將返回未選中狀態(false)。另外假設最初取消選中複選框,並且使其進行檢查,我再次取消選中,此時保存數據複選框未選中(false)。 這真的很奇怪,不知道什麼是問題。

任何幫助真的很有幫助。謝謝.....

+0

這是不相關的'css' – LcSalazar 2014-10-30 15:25:59

+0

在這兩個插件有一個複選框的值設置爲「true」。 這是由開關JavaScript設置? – 2014-10-30 15:30:09

+0

查看POST中發送的值是什麼 – 2014-10-30 15:41:34

回答

0

如果您使用的是帶有強類型的視圖模型,試着改變你的剃刀:

@model YourModel 
<!-- [...] Html Content [...] --> 
@Html.CheckBoxFor(m => m.ENABLED, new { @class = "checkSwitch", @checked = "checked" }) 

然後,控制器裏面,動作應是這樣的:

[HttpPost] 
public ActionResult PostMethod(YourModel model) 
{ 
    var isChecked = model.ENABLED; 
    // [...] 
} 

或者,您可以嘗試另一種方法爲:

public ActionResult PostMethod(bool ENABLED) { /*[...]*/ }