我希望HTML表单上的文本框不能是可编辑的,但是当显示HTML表单时,它的值必须预先填充到Web服务器上。
如果我在HTML中禁用文本框,当我使用其数据回发表单时,不会回发已禁用文本框的值。
如何回复已禁用的文本框的值?
这就是我所拥有的:
<div class="form-group">
@Html.LabelFor(m => m.Name, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@if (!string.IsNullOrEmpty(Model.Name))
{
@Html.TextBoxFor(m => m.Name, new { @class = "form-control", disabled = "disabled" })
}
else
{
@Html.TextBoxFor(m => m.Name, new { @class = "form-control" })
}
</div>
</div>
答案 0 :(得分:0)
我得到了答案。
如果您希望文本框的值不能被用户编辑,但文本框中的值必须回发到服务器,请在其上应用 readonly 属性:
<input type = "text" redaonly" />
所以,在MVC视图中,这是你做的:
@if (!string.IsNullOrEmpty(Model.Name))
{
@Html.TextBoxFor(m => m.Name,
new { @class = "form-control", @readonly = "readonly" })
}
else
{
@Html.TextBoxFor(m => m.Name, new { @class = "form-control" })
}
答案 1 :(得分:0)
在输入中使用readonly
属性,并可选择使用CSS将其灰显。
input[readonly] {
background-color: lightgray;
}