使用帮助程序@ Html.EditorForModel()忽略一些字段

时间:2011-07-28 14:18:28

标签: asp.net-mvc asp.net-mvc-3 razor models mvc-editor-templates

我在所有观看中使用帮助@Html.EditorForModel()

他希望在我的模型中跳过两个字段,但只有在这个视图中,另一个他必须像往常一样继续显示这些字段。

如何才能在此视图中跳过这两个字段?

3 个答案:

答案 0 :(得分:30)

使用[ScaffoldColumn(false)]属性。

E.g。

public class Person {
    [ScaffoldColumn(false)]
    public int PersonID { get; set; }
    ...

解决方案和示例来自:Pro ASP.NET MVC 3 Framework, Third Edition

答案 1 :(得分:3)

我建议为任何想要偏离默认行为的视图编写视图模型。

旁注:为每个视图编写一个viewmodel可能是一个好主意,因为你可以分离关注点,并且更容易控制每个视图的行为。

总之...

例如,假设您的模型是

class Herps {
    public string Name { get; set; }
    public int SecretToSomePeople { get; set; }
}

并且您不希望在其中一个视图中显示SecretToSomePeople,创建一个不包含SecretToSomePeople的视图模型

class Herps {
    public string Name { get; set; }
}

并将其用作所需视图的模型。确保你在某处复制到实际模型中/从中复制。

答案 2 :(得分:2)

严格地说,如果您不想显示字段,那么它们不应该在模型上 - 模型的要点是准确保存视图所需的数据。