2014-10-30 1 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/ которые отображают этот флажок, как это:

enter image description here

HTML код, сгенерированный для него, когда он проверил (Да), как это:

enter image description here

HTML код, сгенерированный для него, когда он снят (Нет), как это:

enter image description here

Теперь вопрос заключается в том, что когда я открываю форму с этим флажком первоначально CheckBox отображается правильно, и когда я make chekcbox проверяется/не проверяется только один раз, тогда все работает нормально. Значит, если флажок установлен вначале, и я делаю его непроверенным, сохраняя данные, тогда он возвращает непроверенный (false), который является правильным. Но предположим, что флажок установлен вначале, и я делаю его непроверенным, снова я делаю, проверяется, сохраняет данные на этот раз, а checkbox проверяется, он возвращает unchecked (false). Также предположим, что флажок не отмечен на начальном этапе, и я делаю его проверенным, снова я делаю отметку, отмеченную флажком сохранить данные на этот раз (false). Это действительно странно, не знаю, в чем проблема.

Любая помощь действительно полезна. Спасибо .....

+0

Это не связано с 'css' – LcSalazar

+0

в обоих модулей есть значение флажка, установленного на «true». Является ли это установкой javascript? –

+0

посмотреть, какое значение выслано в POST –

ответ

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) { /*[...]*/ } 
Смежные вопросы