У меня только что была такая проблема, и я решил полностью ее пропустить, введя свой собственный HTML-код для флажка.
Вы либо добавляете флажок в качестве параметра к своему действию, и тогда он будет полностью обработан для вас, либо, возможно, вам лучше набрать HTML напрямую.
Помощник для флажков фактически генерирует не один, а ДВА флажка для каждого отдельного вызова. Это связано с тем, что непроверенный флажок НЕ будет присутствовать в форме POST, и, следовательно, может быть невозможно узнать, отсутствуют ли данные или не проверены.
Это зависит от вашей модели, является ли это проблемой для вас. Если вы не поместите параметр в atcion только для флажка, вы получите строковое значение, например:
"{true,false}"
, то есть два значения: текущее (новое) и предыдущее (то, которое было до взаимодействия с пользователем). Затем вам нужно будет проанализировать эту строку, чтобы получить фактическое значение.
Чтобы задать параметр, вы можете проверить действие LogOn в AccountController, которое генерируется в начальном проекте для MVC в Visual Studio.