创建不可编辑的文本框,但其值应回发到服务器

时间:2015-08-18 19:48:50

标签: html asp.net-mvc html5

我希望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>

2 个答案:

答案 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;
}