完成nCb到MVC。我被要求为我的跑步俱乐部敲一个快速的联系管理系统。它基于MVC Contact Manager模板完成了所有工作:
我已将其改编为链接到俱乐部的SQL Server会员数据库。但是,它会在“编辑”表单上公开“成员”表的主键。我不介意它是可见的,但必须是只读的(尽管如果它不可见则会更好)。
为视图生成的标记是
<%= Html.TextBox("ID") %>
我尝试过添加只读,可见等属性但是虽然它会编译,但它会在渲染时爆炸。
<%= Html.TextBox("ID"); Visible = false %>
我很确定可以做到这一点,但我已经用尽了Google的点击率!
由于
爱德华
答案 0 :(得分:2)
您可以指定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, IDictionary)重载将其指定为第三个参数:
<%= Html.TextBox("ID", "", htmlProperties) %>
答案 1 :(得分:0)
您可以将其停用,以便无法编辑:
<%= Html.TextBox("ID", "", new {@disabled="disabled"}) %>