类型对象上的ScaffoldColumn属性

时间:2010-08-26 13:24:32

标签: asp.net-mvc-2 scaffolding

似乎要跳过某个成员加入View,您可以在模型中将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; }
}

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

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

我认为它不应该

1 个答案:

答案 0 :(得分:3)

ScaffoldColumn仅更改实际使用the default templated views system introduced in MVC 2Html.DisplayForModel()等方法的行为。它影响MVC附带的Visual Studio向导。

要更改它,您需要编辑T4模板somewhat like this

但是,我不会打扰。如果你想在MVC 2中使用scaffolding,我认为使用默认的模板化视图比使用“Add View”脚手架更好,后者是代码生成。