我如何制作一个Html.文本框只读或不可见
本文关键字:只读 文本 Html 一个 何制作 | 更新日期: 2023-09-27 17:53:48
完成n00b到MVC。我被要求为我的跑步俱乐部开发一个快速联系管理系统。基于MVC Contact Manager模板,一切正常:
http://www.asp.net/mvc/tutorials/older-versions/contact-manager/iteration-1-create-the-application-cs我已经修改了这个链接到俱乐部的SQL Server会员数据库。但是,它在Edit表单上公开了Member表的主键。我不介意它是可见的,但它必须是只读的(尽管如果它不可见会更好)。
为View生成的标记是<%= Html.TextBox("ID") %>
我已经尝试添加属性,如只读,可见等,但虽然它编译,它爆炸时,它呈现。
<%= Html.TextBox("ID"); Visible = false %>
我很确定这是可以做到的,但我已经用完了谷歌的点击!
感谢爱德华可以指定HTML属性并将输入设置为readonly
。这将添加适当的HTML标记,以使文本框为只读:
<%= Html.TextBox("ID", "", new { @readonly = "readonly" }) %>
这个方法使用Html。TextBox(String, Object, Object)重载,第一个参数是输入的名称,第二个参数是值,第三个参数是包含HTML属性的字典。
编辑:正如DGibbs指出的,readonly
是一个保留关键字,必须在@
之前。但是,我发现最好创建一个包含HTML属性的Dictionary
对象。这也是MVC更喜欢的,因为它将所有object
转换为Dictionary<string, object>
:
Dictionary<string, object> htmlProperties = new Dictionary<string, object>();
htmlProperties.Add("readonly", "readonly");
您可以使用Html将其指定为第三个参数。TextBox(String, Object, dictionary)重载:
<%= Html.TextBox("ID", "", htmlProperties) %>
你可以禁用它,这样它就不能被编辑了:
<%= Html.TextBox("ID", "", new {@disabled="disabled"}) %>