2010-08-26 4 views
2

Кажется, что пропустить член прийти на View вы можете установить атрибут ScaffoldColumn к ложному в моделиатрибута ScaffoldColumn на объекте типа

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

, но здесь я вижу, что Id имеет типа объекта. Это единственный способ? Я пробовал с

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

но это не сработало. Как я могу предотвратить строительные леса на примитивном типе, например. INT, длинные и т.д.

Редактировать

У меня есть определить свою модель как

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

'ScaffoldColumn (false)' * does * работает с примитивными типами. Ваша проблема в другом месте. –

+0

@Craig есть ли другой способ/взломать я могу заставить его работать? –

+0

'ScaffoldColumn (false)' * is * правильный путь. Как я уже сказал, ваша проблема в коде, который вы нам не показали. –

ответ

3

ScaffoldColumn изменяет поведение методов, таких как Html.DisplayForModel(), которые фактически используют the default templated views system introduced in MVC 2. Он не влияет на мастера Visual Studio, которые поставляются с MVC.

Чтобы изменить это, вам необходимо отредактировать шаблоны T4, somewhat like this.

Я бы не стал беспокоиться. Если вы хотите строительные леса в MVC 2, я думаю, что лучше использовать шаблоны с шаблонами по умолчанию, чем строительные леса «Добавить вид», что является генерацией кода.

+0

, но если вы меняете его тип на объект, он работает для меня –

+0

, отмечая его как ответ за то, что он работает для метода, такого как Html.DisplayForModel(). Но не мог понять, почему он ведет себя правильно, когда он задает объект –

Смежные вопросы