如何在 asp.net-mvc 中的 html 文本框上设置禁用属性?
我正在尝试在 html 文本框上动态设置 disabled 属性并遇到问题
I am trying to dynamically set the disabled attribute on the html textbox and having issues
我认为这是我的尝试:
string disabledString = "";
if (SomeLogic)
{
disabledString = "disabled";
}
Html.Textbox()...new Dictionary<string, object> { { "maxlength", 50 }, { "disabled", readOnlyState } })%>
如您所见,我将 disabled 属性设置为 "" 或禁用,但是当我测试时,它似乎在任何一种情况下都被禁用.我错过了什么吗?
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?
推荐答案
这对我们来说很难看,因为这里的 HTML 规范很糟糕.
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.
相关文章