-1

モデル クラスは、T4 テンプレートを使用して EF エンティティ モデルから生成されます。[MetadataType(typeof(xxxMetdata))]モデル クラスに属性を追加することのみを目的とする部分モデル クラスがあります。最後に、データ注釈 (表示名、フォーマットなど) を含むクラス (xxxMetadata) があります。典型的なモデルは TestABC123 という名前で、そのメタデータ クラスは TestABC123Metadata という名前です。

CRUD ビューで特定のプロパティが生成または表示されないようにするには、メタデータ クラスに注釈を付けるにはどうすればよいですか? ビューが生成された後にプロパティを削除できることはわかっていますが、そもそもプロパティを生成しないほうがよいでしょう。

私はEFでMVC 4 RCを使用しています。

ありがとう!

更新 1 -

これが私の部分クラスです...

namespace XXX.Web.Models
{
    [MetadataType(typeof(TestAbcMetadata))]
    public partial class TestAbc
    {
    }
}

これが私のメタデータクラスです...

namespace XXX.Web.Models
{
    using System.ComponentModel;

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

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

        [DisplayName("Visit Number")]
        [Required]
        public int VisitId { get; set; }

    }
}

メタデータ クラスのプロパティの 1 つに追加しようとし [ScaffoldColumn(false)]ましたが、そのプロパティは生成されたビュー コードにまだ表示されます。考え?

4

2 に答える 2

0

ビューモデルを最初から作成し、ビューに表示したくないプロパティを除外して、モデルをこのビューモデルにマップする必要があります。

ビューモデルで次のようなものを試してください。

[HiddenInput(DisplayValue=false)]
public int ID { get; set; }

これがあなたの質問を明確にする良い投稿です:ASP.NET MVCViewModelとは何ですか?

前の投稿とディスカッションを参照すると便利な場合があります。ViewBagでアイテムを検索するか、代わりにViewModelを使用しますか?

于 2012-06-19T01:36:49.960 に答える