Настройка атрибута html, который является зарезервированным ключевым словом в Html.CheckBoxFor в ASP.NET MVC
Я использую HtmlHelper для создания флажка в моем представлении следующим образом:
<%= Html.CheckBoxFor(model => model.SeatOnly, new { checked = "checked" })%>
Тем не менее, ошибка возникает, так как проверяется зарезервированное ключевое слово. Я нашел пару человек, говорящих, что вы должны использовать "зарезервированный префикс слова" и просто поместите uderscore перед атрибутом так:
<%= Html.CheckBoxFor(model => model.SeatOnly, new { _checked = "checked" })%>
Это не генерирует ошибку, но в сгенерированном html атрибут фактически "_checked", что означает, что он не работает (если я использую firebug и удаляю подчеркивание, этот атрибут вступает в силу).
Кто-нибудь знает об этом, продолжая использовать CheckBoxFor
?
Спасибо
Ответы
Ответ 1
<%= Html.CheckBoxFor(model => model.SeatOnly, new { @checked = "checked" })%>
Вам нужно префикс "@": -)
Обновление
Просто протестировано со следующим и работает. Попробуйте это...
Model
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" }) %>
Ответ 2
У меня была та же проблема: атрибут "checked" всегда был пропущен в html-коде. Я решил проблему, передав "true" в модель. фрагмент выглядит следующим образом:
MyModel model = new MyModel();
model.SomeBooleanValue = true;
При подключении флажка с моделью флажок всегда показывает значение, которое имеет модель. Если значение в вашей модели "ложно", флажок всегда будет снят.
Может быть, это помогает..
Ответ 3
Используйте @checked
Также происходит с атрибутом class
(зарезервированное слово), они используют @class
Ответ 4
Я не мог понять, как заставить HtmlHelper зарегистрировать проверенный атрибут, поэтому я просто использовал Html.CheckBox("SeatOnly", true)
. Таким образом, свойство в моей модели просмотра все еще установлено, и флажок установлен.
Это прекрасно, но мне все равно интересно узнать, почему @checked не работает так же, как @class.