如何在asp.net-mvc中的html文本框上设置禁用属性?

leo*_*ora 8 html asp.net-mvc textbox

我试图在html文本框上动态设置disabled属性并出现问题

我在我的观点中试过这个:

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

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

正如您所看到的,我将disabled属性设置为""或禁用,但是当我测试时,它似乎在任何一种情况下都被禁用.我错过了什么吗?

Rob*_*cus 16

这对我们来说很丑陋,因为这里的HTML规范很糟糕.

基本上在我们的视图代码中,我们有一些像这样的逻辑:

bool isPlatformOwner = false;

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

//omitted code setting isPlatformOwner    

    if (isPlatformOwner)
    {
        disabledAttributes = new { };
    }
Run Code Online (Sandbox Code Playgroud)

然后,对于我们的控件,我们有:

<%=Html.CheckBoxFor(f => f.AddToReleaseIndicator, disabledAttributes)%>
Run Code Online (Sandbox Code Playgroud)

匿名类型在这里保存了我们,但是,就像我说的那样,它有点难看.