【发布时间】:2013-05-06 06:22:31
【问题描述】:
我正在尝试在 html 文本框上动态设置 disabled 属性并遇到问题
我认为这是我的尝试:
string disabledString = "";
if (SomeLogic)
{
disabledString = "disabled";
}
Html.Textbox()...new Dictionary<string, object> { { "maxlength", 50 }, { "disabled", readOnlyState } })%>
如您所见,我将 disabled 属性设置为 "" 或禁用,但是当我测试时,它似乎在任何一种情况下都被禁用。 我错过了什么吗?
【问题讨论】:
-
HTML 规范说如果在元素中看到“禁用”属性(具有任何值),则禁用。请参阅下面的解决方法。
-
我希望你不是仅仅依靠 disabled 属性来防止数据被改变?如果您的绑定允许,稍微修改一下表单将允许他们更改“只读”值。
-
@Nathan Taylor - 你能澄清一下你的意思吗?
-
好吧,如果你告诉 MVC 在代码级别绑定像“Title”这样的属性,但使用 disabled 属性“禁用”该属性,用户仍然可以使用分配的值发出表单请求标题通过绕过 disabled 属性。
-
同意@Nathan,但这取决于您正在创建的应用程序的类型。对于 Intranet 应用程序,它可能没问题。为了做一个防弹的互联网应用,我只会依靠 disabled 属性来阻止从前端进入,但仍然检查后端的字段以确保它没有改变。
标签: html asp.net-mvc textbox