在运行时设置ScaffoldColumn(false)

本文关键字:false ScaffoldColumn 运行时 设置 | 更新日期: 2023-09-27 17:57:35

我正在使用@Html.EditorFor(model => model.MyModel),我想在模型中添加或设置Id属性作为隐藏字段。这可以通过使用ScaffoldColumnAttribute在代码中完成,但我希望在运行时完成。有可能吗?

在运行时设置ScaffoldColumn(false)

假设这是您想要的,您可以使用@Html.HiddenFor(s=>s....)

如果您想要在调用EditorFor(m => m.MyModel)时隐藏MyModel实体的ID字段,那么您可以使用EditorTemplate

Views/Shared文件夹中,创建一个名为EditorTemplates的新文件夹。在该文件夹中创建一个名为MyModel.cshtml的新视图,其内容如下:

@model ***.MyModel
@if (Model != null) {
    @Html.HiddenFor(m => m.ID)
}
@Html.LabelFor(m => m.Property1);
@Html.EditorFor(m => m.Property1);

对模型存在性的测试是为了处理Create视图。

最后,为了处理DisplayFor案例,您还必须为此添加一个模板,名为Views/Shared/DisplayTemplates/MyModel.cshtml