Установка атрибута 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', что означает, что это не работает (если я использую поджигателя и удаляю подчеркивание, атрибут затем вступает в силу).

Делает любой знает путь вокруг этого при тихом использовании CheckBoxFor?

Спасибо

11
задан tereško 15 March 2013 в 05:10
поделиться

4 ответа

<%= 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" }) %>
17
ответ дан 3 December 2019 в 05:33
поделиться

Мне не удалось найти способ заставить HtmlHelper зарегистрировать проверенный атрибут, поэтому я просто использовал Html.CheckBox ("SeatOnly", true) вместо этого. Таким образом, свойство в моей модели представления все еще устанавливается, и флажок установлен.

Это нормально, но мне все равно было бы интересно узнать, почему @checked не работает так же, как @class.

0
ответ дан 3 December 2019 в 05:33
поделиться

Использовать @checked

Также встречается с атрибутом class (зарезервированное слово), они используют @ класс

0
ответ дан 3 December 2019 в 05:33
поделиться

У меня была такая же проблема: атрибут "checked" всегда опускался в html-коде. Я решил проблему, передав в модель «истину». фрагмент выглядит следующим образом:

MyModel model = new MyModel();
model.SomeBooleanValue = true;

Когда вы соединяете флажок с моделью, флажок всегда показывает значение, которое имеет модель. Если значение в вашей модели «false», флажок всегда будет снят.

Может быть, это поможет ..

4
ответ дан 3 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: