как установить отключенный атрибут в текстовом поле html в asp.net-mvc?

Я пытаюсь динамически установить атрибут disabled в текстовом поле html, и у меня возникают проблемы

Я попытался сделать это, на мой взгляд:

 string disabledString = "";
 if (SomeLogic)
 {
      disabledString = "disabled";
 }

 Html.Textbox()...new Dictionary<string, object> { { "maxlength", 50 }, { "disabled", readOnlyState } })%>

Как вы можете видеть Я устанавливаю отключенный атрибут на " Я что-то упустил?

8
задан THelper 9 May 2012 в 14:41
поделиться

2 ответа

Это было некрасиво для нас из-за того, что спецификация HTML здесь плохая.

В основном в нашем коде представления у нас была некоторая логика, подобная этой:

bool isPlatformOwner = false;

object disabledAttributes = new { @disabled="disabled", @readonly="readonly" };

//omitted code setting isPlatformOwner    

    if (isPlatformOwner)
    {
        disabledAttributes = new { };
    }

Затем для наших элементов управления у нас было следующее:

<%=Html.CheckBoxFor(f => f.AddToReleaseIndicator, disabledAttributes)%>

Анонимные типы спасли нас здесь, но, как я уже сказал, это стало немного уродливым.

16
ответ дан 5 December 2019 в 08:22
поделиться

Я думаю, вы хотите вообще опустить атрибут disabled, если хотите, чтобы он был включен. Старые браузеры смотрят на следующее и отключают текстовые поля:

<input type="text" disabled></input>

Другими словами, в более старом HTML = "disabled" не было необходимости, поэтому по соображениям совместимости вы должны просто опустить атрибут, если хотите, чтобы он отображался правильно. Однако я не уверен, что произойдет, если вы попробуете строгий DOCTYPE.

1
ответ дан 5 December 2019 в 08:22
поделиться
Другие вопросы по тегам:

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