У меня есть веб-приложение ASP.Net MVC 3, и я добавляю флажок на страницу просмотра с использованием класса HtmlHelper, например...
@Html.CheckBox("CheckBox1", true, new { @class = "Class1" })
Что я хочу сделать, это условно добавить отключенный атрибут на основе свойства представления. В принципе, было бы идеально...
@Html.CheckBox("CheckBox1", true, new { @class = "Class1", @disabled = Model.ReadOnly })
К сожалению, из-за характера отключенного атрибута это не будет работать, потому что любое значение, присвоенное отключенному атрибуту (даже "false" ), будет переведено как true.
Я уже думал о нескольких решениях, чтобы обойти эту проблему, поэтому вопрос заключается не в том, как я могу это сделать. Но, скорее, есть простой способ, как и желаемый метод выше? или мне нужно прибегнуть к одному из следующих?..
То, что я знаю, я мог бы сделать...
-
Создайте инструкцию if/else и напишите в разные строки
Html.CheckBox
(не очень хорошо читаемые), и возможно сбрасывать предупреждение о разметке - не уверен) -
Пропустить класс HtmlHelper и вручную записать тег, позволяющий улучшить условные атрибуты (сокращает код, но добавляет несогласованность)
-
Создайте настраиваемый помощник, который принимает параметр "отключен" (самое чистое решение, но требует нежелательных дополнительных методов - возможно, лучший вариант до сих пор)