how do I set disabled attribute on html textbox in asp.net-mvc?

asp.net-mvc, html, textbox

Solution

This was ugly for us, due to the fact that the HTML spec is lousy here.

Basically, in our view code we had some logic like this:

bool isPlatformOwner = false;

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

//omitted code setting isPlatformOwner    

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

Then, for our controls, we had this:

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

Anonymous types saved us here, but, like I said, it got a little ugly.

Problem

I am trying to dynamically set the disabled attribute on the html textbox and having issues I tried this in my view: ``` string disabledString = ""; if (SomeLogic) { disabledString = "disabled"; } Html.Textbox()...new Dictionary<string, object> { { "maxlength", 50 }, { "disabled", readOnlyState } })%> ``` As you can see I am setting the disabled attribute to "" or disabled but when I test, it seems to be disabled in either case. Am I missing something?

Original source