我如何制作一个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.文本框只读或不可见

可以指定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"}) %>