Скрытый флажок MVC всегда отправляется как отмеченный

#asp.net-mvc #asp.net-mvc-3 #checkbox

#asp.net-mvc #asp.net-mvc-3 #флажок

Вопрос:

У меня есть кое-что, что я должен исправить как можно скорее

В представлении у меня есть скрытый флажок:

 <div class="D2">@Html.CheckBox("none", false, new { type="hidden", id = "none" })</div>

//Apply button will submit the form
$('#apply').click(function () {
...
     $("#submit").click();
...
});
  

По какой-то причине он всегда отправляется как отмеченный, когда он скрыт. Если я удалю скрытое свойство, оно будет работать просто отлично.
Я должен сделать это таким образом, поскольку это самый быстрый способ исправить код.

Ответ №1:

Вы не устанавливаете скрытое свойство — вы устанавливаете свойство type.

Я думаю, вы хотите

 <input type="checkbox" id="none" style="visibility:hidden;" />
  

не

 <input type="hidden" id="none" />
  

Попробуйте это вместо

 @Html.CheckBox("none", false, new { style="visibility:hidden", id = "none" })
  

Ответ №2:

Передавая type=»hidden», вы делаете так, чтобы элемент больше не был флажком. Теперь это скрытый ввод. Вы пытаетесь установить невидимый флажок? Если это так, попробуйте

 @Html.CheckBox("none", false, new { id = "none", style="display: none" })