リストとしてMVCで動的ビューを作成する

精神

エンティティプロパティのリストを表示する動的ビューを作成したいと思います。

これらのモデルを作成します

  public class PersonModel
{
    public string FirstName { get; set; }
    public string LastName { get; set; }

}

  public class EmployeeModel : PersonModel
    {
        public string CompanyName { get; set; }

      }

 public class StudentModel : PersonModel
    {
        public string SchoolName { get; set; }

    }

リストを表示する1つのビューが必要です。例の列とデータに対して動的に生成されたビューが、リストに表示されます。

従業員を開いたときの例以下を示します。

ここに画像の説明を入力してください

そして、学生を開くとき、私は以下を示します:

ここに画像の説明を入力してください

ビューを動的にし、必要な列とデータを含める最も簡単な方法は何ですか?

スティーブハリス

これが私が思うのと同じくらい理にかなっていることを願っています!

そして実際に完全に異なると考えられている、あなたはその問題を克服する方法が必要になります。私は汎用コンテナクラスを使用します:List<PersonModel>List<EmployeeModel>List<StudentModel>

public interface IGenericContainer
{
    dynamic Data { get; }
}

public class GenericContainer<T> : IGenericContainer
{
    T _Data { get; set; }
    public GenericContainer(T data)
    {
        _Data = data;
    }
    dynamic IGenericContainer.Data
    {
        get { return _Data; }
    }
}

public class GenericContainer
{
    public static GenericContainer<T> Create<T>(T data)
    {
        return new GenericContainer<T>(data);
    }
}

次に、これを使用する汎用ビューが必要です。これをShared / DisplayTemplates /GenericGrid.cshtmlに入れます

@using System.Reflection;
@using System.Text;
@{
    Layout = null;
}
@model IGenericContainer
@{
    IEnumerable<PropertyInfo> properties = null;
    if (Model.Data.Count > 0)
    {
        properties = Model.Data[0].GetType().GetProperties();
    }
}
<div>
@if (properties != null)
{
    <table>
        <thead>
            <tr>
                @foreach (var prop in properties)
                {
                    <td>@prop.Name</td>
                }
            </tr>
        </thead>
        <tbody>
            @for (int i = 0; i < Model.Data.Count; i++)
            {
                <tr>
                @foreach (var prop in properties)
                {
                    <td>@prop.GetValue(Model.Data[i])</td>
                }
                </tr>
            }
        </tbody>
    </table>
}
</div>

これを使用するには、これをビューに追加する必要があります。

@Html.DisplayFor(m => GenericContainer.Create(Model.PersonList), "GenericGrid")

また、PersonListは、タイプのモデルList<PersonModel>または任意のモデルのリストのプロパティです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MVCで静的HTMLを使用して動的ビューを作成する

分類Dev

SwiftUIを使用してビューの動的リストを作成する方法

分類Dev

背景リソースを使用してAndroidでテキストビューをカードビューとして作成する方法

分類Dev

クラスを作成せずに、JSONを介してMVCコントローラーからビューにリストを渡すことは可能ですか?

分類Dev

リストビューを作成して追加する方法は?

分類Dev

私は手動でfirebaseデータベース内の値を変更したときに私の代わりにリストビューで値を更新するリストビューで複数の項目を作成します

分類Dev

テキストと画像を使用してカスタムリストビューを作成しているときにアプリがクラッシュする

分類Dev

Androidでカスタムリストビューアダプタを作成しようとしています

分類Dev

ASP.NET MVC:インターフェイスをモデルとして使用して動的ビューを作成する

分類Dev

動的リストビューを作成する方法

分類Dev

PHPで動的jsonを使用してブートストラップツリービューを使用する方法

分類Dev

リストビューでテキストを太字にして、単語を動的に指定する

分類Dev

Odooで動的ビューを作成するとMVCが壊れます

分類Dev

動的位置に基づいてリストビューでテキストビューを非表示にする

分類Dev

Android:listview / gridviewを使用して水平リストビューを作成する方法

分類Dev

プッシュ通知ペイロードを使用してアプリを起動し、正しいビューにルーティングされていることを確認するUIテストを作成するにはどうすればよいですか?

分類Dev

デフォルトのビューア証明書を使用してAWSディストリビューションを作成すると、InvalidViewerCertificateになります

分類Dev

リストビューでNautilusを使用してファイル/フォルダを作成する

分類Dev

mvcのActionメソッドを介してビューとリストを返そうとしています

分類Dev

SwiftUI:動的リストの上部にビューを追加すると、ビューが縮小します

分類Dev

Android でカスタム リスト ビューを作成する

分類Dev

Android:ボレーを介してリストビューアイテムを動的に追加することはできません

分類Dev

「ビューとして」の変更に応じて、ストーリーボード内でセカンダリビューのサイズを自動的に変更することはできますか?

分類Dev

C#MVCリストと同じビューで作成

分類Dev

jsonAPIを使用してフラッターでリストビュー内にグリッドビューを作成する方法

分類Dev

MVCでビューを作成するとエラーが発生します

分類Dev

ビューMVCでリストを表示する

分類Dev

mvcビューでリストを取得する方法

分類Dev

fork()は、他のLinuxディストリビューションと比較してUbuntuで異なる動作をしますか?

Related 関連記事

  1. 1

    MVCで静的HTMLを使用して動的ビューを作成する

  2. 2

    SwiftUIを使用してビューの動的リストを作成する方法

  3. 3

    背景リソースを使用してAndroidでテキストビューをカードビューとして作成する方法

  4. 4

    クラスを作成せずに、JSONを介してMVCコントローラーからビューにリストを渡すことは可能ですか?

  5. 5

    リストビューを作成して追加する方法は?

  6. 6

    私は手動でfirebaseデータベース内の値を変更したときに私の代わりにリストビューで値を更新するリストビューで複数の項目を作成します

  7. 7

    テキストと画像を使用してカスタムリストビューを作成しているときにアプリがクラッシュする

  8. 8

    Androidでカスタムリストビューアダプタを作成しようとしています

  9. 9

    ASP.NET MVC:インターフェイスをモデルとして使用して動的ビューを作成する

  10. 10

    動的リストビューを作成する方法

  11. 11

    PHPで動的jsonを使用してブートストラップツリービューを使用する方法

  12. 12

    リストビューでテキストを太字にして、単語を動的に指定する

  13. 13

    Odooで動的ビューを作成するとMVCが壊れます

  14. 14

    動的位置に基づいてリストビューでテキストビューを非表示にする

  15. 15

    Android:listview / gridviewを使用して水平リストビューを作成する方法

  16. 16

    プッシュ通知ペイロードを使用してアプリを起動し、正しいビューにルーティングされていることを確認するUIテストを作成するにはどうすればよいですか?

  17. 17

    デフォルトのビューア証明書を使用してAWSディストリビューションを作成すると、InvalidViewerCertificateになります

  18. 18

    リストビューでNautilusを使用してファイル/フォルダを作成する

  19. 19

    mvcのActionメソッドを介してビューとリストを返そうとしています

  20. 20

    SwiftUI:動的リストの上部にビューを追加すると、ビューが縮小します

  21. 21

    Android でカスタム リスト ビューを作成する

  22. 22

    Android:ボレーを介してリストビューアイテムを動的に追加することはできません

  23. 23

    「ビューとして」の変更に応じて、ストーリーボード内でセカンダリビューのサイズを自動的に変更することはできますか?

  24. 24

    C#MVCリストと同じビューで作成

  25. 25

    jsonAPIを使用してフラッターでリストビュー内にグリッドビューを作成する方法

  26. 26

    MVCでビューを作成するとエラーが発生します

  27. 27

    ビューMVCでリストを表示する

  28. 28

    mvcビューでリストを取得する方法

  29. 29

    fork()は、他のLinuxディストリビューションと比較してUbuntuで異なる動作をしますか?

ホットタグ

アーカイブ