MVC文本框只读不起作用

时间:2012-03-26 13:15:01

标签: .net asp.net-mvc

这是我的代码:

<%= Html.TextBox("txtId", new { @readonly = "readonly" })%>

但它不起作用。为什么呢?

7 个答案:

答案 0 :(得分:3)

<%= Html.TextBox("txtId", null, new { @readonly = "readonly" })%>

这是正确的代码。第二个参数指定文本框的值。

答案 1 :(得分:1)

你错过了第二个参数。您希望将此模型的哪个属性绑定到此文本框。这应该是第二个参数。

 <%= Html.TextBox("ID", Model.Attr, new { @readonly="readonly" })%>

如果您不想绑定到模型,请使用null作为第二个属性:

<%= Html.TextBox("ID", null, new { @readonly="readonly" })%>

答案 2 :(得分:1)

使用:

<%= Html.TextBox("txtId", new { @readonly = "true" })%>

编辑:最好使用带有键入模型的TextBoxFor:

<%= Html.TextBoxFor(model => model.Id, new { @readonly = "true" })%>

答案 3 :(得分:1)

尝试

<%= Html.TextBox("txtId", "", new { @readonly = "readonly" })%>

(第二个参数是值,第三个参数代表HTML属性)

代码中的问题是new { @readonly = "readonly" }对象被解释为要在文本框中显示的值

答案 4 :(得分:0)

使用以下代码。

<%= Html.TextBox("txtId", string.Empty ,new { @readonly = "readonly" })%>

答案 5 :(得分:0)

就我而言,我意识到显示值的数据类型必须是字符串。 因此我将Model.SOME_DATE从DateTime转换为字符串,并且代码工作正常。

 @Html.EditorFor(model => model.SOME_DATE, new { htmlAttributes = new { @class = "form-control", @readonly = true } })

答案 6 :(得分:0)

属性应该是第3个参数。

TextBox('ID', 'value', 'attributes'