MVCでのSelectリストの順序付け方法について


  1. モデルクラスでの順序付け: もし、Selectリストの順序付けをモデルクラスで行いたい場合は、モデルクラスにソート用のプロパティを追加し、そのプロパティを使用してリストをソートします。例えば、次のようなコードを参考にしてください:

    public class MyModel
    {
       public int Id { get; set; }
       public string Name { get; set; }
       public int SortOrder { get; set; }
    }
    // コントローラーのアクションメソッド
    public ActionResult Index()
    {
       List<MyModel> models = new List<MyModel>
       {
           new MyModel { Id = 1, Name = "Item 1", SortOrder = 2 },
           new MyModel { Id = 2, Name = "Item 2", SortOrder = 1 },
           new MyModel { Id = 3, Name = "Item 3", SortOrder = 3 }
       };
       models = models.OrderBy(m => m.SortOrder).ToList();
    
       ViewBag.MyModelList = new SelectList(models, "Id", "Name");
       return View();
    }

    上記の例では、SortOrder プロパティを使用して models リストをソートしています。OrderBy メソッドを使用してソートし、ToList メソッドでリストに変換しています。そして、SelectList オブジェクトを作成し、ビューに渡しています。

  2. ビューヘルパーを使用した順序付け: もし、ビューで順序付けを行いたい場合は、ビューヘルパーを使用してソートを行います。以下に例を示します:

    @model MyModel
    
    @{
       List<MyModel> models = new List<MyModel>
       {
           new MyModel { Id = 1, Name = "Item 1", SortOrder = 2 },
           new MyModel { Id = 2, Name = "Item 2", SortOrder = 1 },
           new MyModel { Id = 3, Name = "Item 3", SortOrder = 3 }
       };
       models = models.OrderBy(m => m.SortOrder).ToList();
    }
    
    @Html.DropDownListFor(m => m.Id, new SelectList(models, "Id", "Name"))

    上記の例では、ビューヘルパーの DropDownListFor メソッドを使用して、SelectList オブジェクトを作成しています。モデルの Id プロパティに選択された値がバインドされます。

これらの方法を使用することで、MVCでSelectリストの順序付けを行うことができます。上記のコード例を参考にして、自身のアプリケーションに適用してみてください。