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; }
}

アクションのあるコントローラーがありますCreate。[アクションの作成]を右クリックして[ビューの追加]を選択し、このモデルで強いタイプのビューを作成すると、ビューが作成されますが、IDのテキストボックスも追加されます

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

私はそれが持っているべきではないと思います

4

1 に答える 1

3

ScaffoldColumnMVC2で導入されたデフォルトのテンプレートビューシステムHtml.DisplayForModel()を実際に使用するようなメソッドの動作のみを変更します。MVCに付属しているVisualStudioウィザードには影響しません。

これを変更するには、T4テンプレートを次のように編集する必要があります。

しかし、私は気にしません。MVC 2でスキャフォールディングが必要な場合は、コード生成である「ビューの追加」スキャフォールディングよりも、デフォルトのテンプレートビューを使用する方がよいと思います。

于 2010-08-26T15:06:05.410 に答える