Атрибут ScaffoldColumn для объекта типа - PullRequest
2 голосов
/ 26 августа 2010

Похоже, что для пропуска члена для просмотра в представлении вы можете установить для атрибута 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. Когда я щелкаю правой кнопкой мыши на действии create и выбираю add view и создаю строго типизированное представление с этой моделью, оно создает представление, но также добавляет текстовое поле для Id

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

который, я полагаю, не должен иметь

1 Ответ

3 голосов
/ 26 августа 2010

ScaffoldColumn только изменяет поведение таких методов, как Html.DisplayForModel(), которые фактически используют систему шаблонных представлений по умолчанию, введенную в MVC 2 . не влияет на мастеров Visual Studio, поставляемых с MVC.

Чтобы изменить это, вам нужно отредактировать шаблоны T4, примерно так .

Хотя я бы не стал беспокоиться.Если вы хотите использовать скаффолдинг в MVC 2, я думаю, что лучше использовать шаблонные представления по умолчанию, чем скаффолдинг "Add View", который является генерацией кода.

...