12

@Html.EditorForModel()我在我所有的观点上都使用了助手。

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

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

4

3 回答 3

32

使用[ScaffoldColumn(false)]属性。

例如

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

解决方案和示例来自:Pro ASP.NET MVC 3 Framework,第三版

于 2011-09-19T06:54:29.643 回答
3

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

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

反正...

例如,假设您的模型是

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

并且您不想SecretToSomePeople在其中一个视图上显示,请创建一个不包含SecretToSomePeople

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

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

于 2011-07-28T14:46:03.300 回答
2

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

于 2011-07-28T14:44:55.033 回答