Я пытаюсь заменить некоторые html с помощью html-помощников, и я пытаюсь передать словарь HTMLAttributes в методе CheckboxFor helper. Моя проблема в том, что я не знаю, как заставить это выражение работать как параметр объекта для моего экземпляра словаря для проверенного идентификатора. HTML выглядит следующим образомПередача @ (Model.newsletterOptin? True: false) значение в проверенный ключ внутри словаря для htmlhelper
<input type="checkbox"
id="newsletterOptin"
name="newsletterOptin"
checked="@(Model.newsletterOptin ? true : false)" />
и помощник выглядит так
@Html.CheckBoxFor(m => m.newsletterOptin, new Dictionary<string, object>() {
{ "id", "newsletterOptin" },
{ "checked", "@(Model.newsletterOptin ? true : false)" }
})
Как я могу передать @(Model.newsletterOptin ? true : false)
так, что он правильно использовать?
Что вы пытаетесь сделать здесь? 'CheckBoxFor()' правильно устанавливает атрибут 'checked' на основе значения свойства (если' newsletterOptin' является 'true', флажок будет проверен, в противном случае он будет снят). Ваша попытка просто завинчивает привязку модели , И оба параметра 'checked =" true "и' checked = "false" 'идентичны - оба устанавливают свойство' checked' - это наличие или отсутствие атрибута, который определяет его его проверочный –
И установка 'new {" id "," newsletterOptin "}' бессмысленно - 'CheckBoxFor()' (и все методы 'HtmlHelper', которые генерируют элементы управления формой), устанавливают атрибут' id' на основе имени свойства. Просто переписывайте его с тем же значением, если оно уже есть. –