考虑以下 Razor 代码段:
<div class="form-group">
@Html.LabelFor(model => model.Model, new {@class="col-lg-3 control-label" })
<div class="col-lg-9">
@Html.TextBoxFor(model => model.Model, new {@readonly="readonly",
tabindex="3",
@class="form-control focus-effect",
placeholder=Model.Model,
title=Model.Model })
</div>
</div>
这个特定片段的有趣之处在于,一旦我删除它,我的模型就会很好地回复。但是如果我添加它,模型将返回为 null。我有大约 20 个其他属性,它们使用完全相同的代码段显示(栏当然具有唯一的名称和标题和占位符的值)。
例如
<div class="form-group">
@Html.LabelFor(model => model.DMSStockNo, new {@class="col-lg-3 control-label" })
<div class="col-lg-9">
@Html.TextBoxFor(model => model.DMSStockNo, new {@readonly="readonly",
tabindex="5",
@class="form-control focus-effect",
placeholder=Model.DMSStockNo,
title=Model.DMSStockNo })
</div>
</div>
有问题的模型:
public class VehicleDetailsModel
{
[DisplayName("Stock Number")]
public string DMSStockNo { get; set; }
[DisplayName("Vehicle Model")]
public string Model { get; set; }
//snip
}
是因为我愚蠢地选择将属性称为“模型”吗?正如我所说,如果我从我的编辑表单中省略 Model.Model 并回发,则所有其他内容都会被发布,并且我会得到一个 VehicleDetailsModel 对象传递给控制器方法,但如果我包含它,我的 VehicleDetailsModel 本身就是空的。