#c# #asp.net-mvc #asp.net-mvc-4 #checkbox
#c# #asp.net-mvc #asp.net-mvc-4 #флажок
Вопрос:
Я asp.net новичок в mvc. У меня есть флажок в моей форме
@Html.CheckBox("Don't show my number", Model.IsPhonePublic)
Но независимо от того, устанавливаю ли я флажок или нет Model.IsPhonePublic
, всегда false при отправке формы. Любые указатели
Комментарии:
1. @Html. Флажок (модель. IsPhonePublic), затем отдельная метка
2. Разве метка не должна быть «Показать мой номер»? или вы всегда используете противоположное логическое значение? 🙂
3. Недавно я обнаружил, что если у вас есть другая ссылка на то же свойство модели, например @Html . HiddenFor(m => m.IsPhonePublic) в той же форме, что и у вас @Html. CheckBoxFor(m => m.IsPhonePublic), тогда контроллер может не получить ожидаемое значение. Просто что-то, с чем можно разобраться, если вы не можете найти, почему значение неверно, когда вы находитесь в точке останова в вашем контроллере! Кроме того, я не знаю, относится ли это к ядру или нет.
Ответ №1:
Вы неправильно используете помощник, смотрите Определение здесь :
Итак, вы делаете это:
@Html.Label("Don't show my number")
@Html.CheckBox("IsPhonePublic", Model.IsPhonePublic)
или
@Html.Label("Don't show my number")
@Html.CheckBoxFor(m => m.IsPhonePublic)
или третье и чистое решение:
@Html.LabelFor(m => m.IsPhonePublic)
@Html.CheckBoxFor(m => m.IsPhonePublic)
И в вашем определении модели:
[DisplayName("Don't show my number")]
public bool IsPhonePublic { get; set; }
Ответ №2:
@Html.EditorFor(model => model.IsPhonePublic)
@Html.Label('Don't Show my number.')