如何在剃须刀中设置只读属性?

时间:2015-04-20 05:35:38

标签: razor

@if (Model.Amount!=null)
    {
        <tr>
           <td>Amount</td>
           <td><b>:</b></td>
           <td>@Html.EditorFor(model => model.Amount, new { readonly= true})
                @Html.ValidationMessageFor(model => model.Amount)
           </td>
        </tr>
     }

3 个答案:

答案 0 :(得分:2)

EditorFor没有重载,需要htmlAttributes作为参数...

你可以简单地做一个if else

@if (Model.Amount != null) {
    @Html.TextBoxFor(model => model.Amount)
}
else {
   //or @Html.DisplayFor(model => model.Amount)
   @Html.TextBoxFor(model => model.Amount, new{@readonly = "readonly"}
}

答案 1 :(得分:1)

既然你想让它只读,那么为什么不使用Label呢?

@Html.DisplayFor(model => model.Amount)

请阅读您对其他答案的评论

  

当amount不为null且readonly时,我需要将readonly设为true   当金额为空时为假

一个简单的if if就足够了。

答案 2 :(得分:0)

试试这个:

@Html.EditorFor(model => model.Amount, new {  @readonly = "readonly"})