2

似乎要跳过成员进入视图,您可以在模型中将 ScaffoldColumn 属性设置为 false

[ScaffoldColumn(false)]
public object Id { get; set; } 

但在这里我看到 Id 是对象类型。这是唯一的方法吗?我试过了

[ScaffoldColumn(false)]
public int Id { get; set; } 

但它没有用。如何防止在原始类型上搭建脚手架,例如 int、long 等。

编辑

我已将我的模型定义为

public class Department
{
[ScaffoldColumn(false)]        
        public int Id { get; set; }

        [Required(ErrorMessage="Name is required")]
        [StringLength(25)]
        [DisplayName("Name")]
        public string Name { get; set; }

        public bool Active { get; set; }
}

我有一个有 action 的控制器Create。当我右键单击创建操作并选择添加视图并使用此模型创建强类型视图时,它会创建一个视图,但还会为 Id 添加一个文本框

<%: Html.TextBoxFor(model => model.Id)%>

我想它不应该有

4

1 回答 1

3

ScaffoldColumn仅更改Html.DisplayForModel()实际使用MVC 2 中引入的默认模板化视图系统的方法的行为。它不会影响 MVC 附带的 Visual Studio 向导。

要改变这一点,您需要编辑 T4 模板,有点像这样

不过,我不会打扰。如果您想在 MVC 2 中搭建脚手架,我认为使用默认模板视图比使用“添加视图”脚手架(代码生成)更好。

于 2010-08-26T15:06:05.410 回答