Установка атрибута html, который является зарезервированным ключевым словом в Html.CheckBoxFor в ASP.NET MVC - PullRequest
11 голосов
/ 22 апреля 2010

Я использую HtmlHelper для создания флажка в моем представлении следующим образом:

<%= Html.CheckBoxFor(model => model.SeatOnly, new { checked = "checked" })%>

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

<%= Html.CheckBoxFor(model => model.SeatOnly, new { _checked = "checked" })%>

Это не генерирует ошибку, но в сгенерированном html атрибуте фактически «_checked», что означает, что он не работает (если я использую firebug и удаляю подчеркивание, атрибут вступает в силу).

Кто-нибудь знает способ обойти это, все еще используя CheckBoxFor?

Спасибо

Ответы [ 4 ]

17 голосов
/ 22 апреля 2010
<%= 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" }) %>
4 голосов
/ 24 августа 2010

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

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

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

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

0 голосов
/ 22 апреля 2010

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

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

0 голосов
/ 22 апреля 2010

Использование @checked

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

...