在运行时设置ScaffoldColumn(false)

时间:2013-02-05 10:30:42

标签: c# asp.net-mvc-4

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果要实现的目的是在调用ID时隐藏MyModel实体的EditorFor(m => m.MyModel)字段,则可以使用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