Кто-нибудь знает, как привязать переключатель «Да / Нет» к логическому свойству строго типизированной модели в ASP.NET MVC.
Модель
public class MyClass
{
public bool Blah { get; set; }
}
Посмотреть
<%@ Page Title="blah" Inherits="MyClass"%>
<dd>
<%= Html.RadioButton("blah", Model.blah) %> Yes
<%= Html.RadioButton("blah", Model.blah) %> No
</dd>
Спасибо
РЕШЕНИЕ:
Спасибо Брайану за направление, но это было противоположно тому, что он написал. Как так -
<%@ Page Title="blah" Inherits="MyClass"%>
<dd>
<%= Html.RadioButton("blah", !Model.blah) %> Yes
<%= Html.RadioButton("blah", Model.blah) %> No
</dd>
c#
asp.net-mvc
model
radio-button
boolean
brianstewey
источник
источник
Ответы:
Выбран второй параметр, поэтому используйте! выбрать значение нет, когда логическое значение ложно.
источник
Если вы используете MVC 3 и Razor, вы также можете использовать следующее:
источник
Вот более полный пример, в котором используется
fieldset
для удобства и первая кнопка указана по умолчанию. Без тогоfieldset
, для чего переключатели в целом не могут быть определены программно.Модель
Посмотреть
Вы можете добавить
@checked
аргумент к анонимному объекту, чтобы установить переключатель по умолчанию:Обратите внимание, что вы можете связать строку, заменив
true
иfalse
строковыми значениями.источник
Немного основываясь на ответе Бена, я добавил атрибуты для идентификатора, чтобы использовать метки.
Надеюсь, это поможет.
источник
Добавление тегов меток вокруг радиокнопок с использованием обычного HTML также устранит проблему с 'labelfor':
При нажатии на текст теперь выбирается соответствующий переключатель.
источник
или MVC 2.0:
источник
Если я могу бросить свою шляпу в кольцо, я думаю, что есть более чистый способ, чем существующие ответы, чтобы повторно использовать функциональность переключателя.
Допустим, у вас есть следующее свойство в вашей ViewModel :
Вы можете выставить это свойство через повторно используемый шаблон редактора :
Сначала создайте файл
Views/Shared/EditorTemplates/YesNoRadio.vbhtml
Затем добавьте следующий код в YesNoRadio.vbhtml :
Вы можете вызвать редактор для свойства, вручную указав имя шаблона в вашем представлении :
Плюсы:
источник
Я закончил упаковывать это в метод расширения, чтобы (1) я мог генерировать метку и радио сразу и (2) чтобы мне не пришлось возиться с указанием моих собственных идентификаторов:
Использование:
источник