Я использую HtmlHelper для создания флажка, по моему мнению, как так:
<%= Html.CheckBoxFor(model => model.SeatOnly, new { checked = "checked" })%>
Однако ошибка бросается, как проверено зарезервированное слово. Я нашел несколько человек, говорящих, что необходимо использовать 'префикс зарезервированного слова' и просто поместить uderscore перед атрибутом как так:
<%= Html.CheckBoxFor(model => model.SeatOnly, new { _checked = "checked" })%>
Это не генерирует ошибку, но в сгенерированном HTML атрибут на самом деле '_checked', что означает, что это не работает (если я использую поджигателя и удаляю подчеркивание, атрибут затем вступает в силу).
Делает любой знает путь вокруг этого при тихом использовании CheckBoxFor
?
Спасибо
<%= Html.CheckBoxFor(model => model.SeatOnly, new { @checked = "checked" })%>
Вам необходимо поставить перед ним префикс '@': -)
Обновление
Только что протестировано со следующим и работает. Попробуйте это ...
Модель
public class MyModel
{
public bool SomeBooleanValue { get; set; }
public string Title { get; set; }
}
Просмотр (обрезаны только важные биты)
<%= Html.TextBoxFor(x => x.Title) %>
<%= Html.CheckBoxFor(x => x.SomeBooleanValue, new { @checked = "checked" }) %>
Мне не удалось найти способ заставить HtmlHelper зарегистрировать проверенный атрибут, поэтому я просто использовал Html.CheckBox ("SeatOnly", true)
вместо этого. Таким образом, свойство в моей модели представления все еще устанавливается, и флажок установлен.
Это нормально, но мне все равно было бы интересно узнать, почему @checked не работает так же, как @class.
Использовать @checked
Также встречается с атрибутом class
(зарезервированное слово), они используют @ класс
У меня была такая же проблема: атрибут "checked" всегда опускался в html-коде. Я решил проблему, передав в модель «истину». фрагмент выглядит следующим образом:
MyModel model = new MyModel();
model.SomeBooleanValue = true;
Когда вы соединяете флажок с моделью, флажок всегда показывает значение, которое имеет модель. Если значение в вашей модели «false», флажок всегда будет снят.
Может быть, это поможет ..