-
モデルクラスでの順序付け: もし、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
オブジェクトを作成し、ビューに渡しています。 -
ビューヘルパーを使用した順序付け: もし、ビューで順序付けを行いたい場合は、ビューヘルパーを使用してソートを行います。以下に例を示します:
@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リストの順序付けを行うことができます。上記のコード例を参考にして、自身のアプリケーションに適用してみてください。