C# を使用した ASP.NET MVC 3 でのカスケード ドロップダウン メニューの作成: 簡略化されたアプローチ
はじめに
この記事では、ASP.NET MVC 3 および C# でカスケード ドロップダウン メニューを作成するためのシンプルで簡単な方法を説明します。
モデル
まず、ビュー データを表すモデル クラスを定義します。
<code class="language-csharp">public class MyViewModel { public int? Year { get; set; } public int? Month { get; set; } public IEnumerable<SelectListItem> Years { get; set; } }</code>
コントローラー
コントローラーは 2 つのドロップダウン メニューの操作を処理します:
<code class="language-csharp">public ActionResult Index() { var model = new MyViewModel { Years = GetYears() }; //添加获取年份数据的调用 return View(model); } private IEnumerable<SelectListItem> GetYears() { //此处替换为你的年份数据获取逻辑,例如从数据库获取 return Enumerable.Range(2010, 15).Select(year => new SelectListItem { Value = year.ToString(), Text = year.ToString() }); } public ActionResult Months(int year) { if (year == 2011) { return Json(Enumerable.Range(1, 3).Select(x => new { value = x, text = x }), JsonRequestBehavior.AllowGet); } return Json(Enumerable.Range(1, 12).Select(x => new { value = x, text = x }), JsonRequestBehavior.AllowGet); }</code>
表示
ビューには、ドロップダウン メニューと、カスケード機能を実装する JavaScript コードが含まれています:
<code class="language-html">@model AppName.Models.MyViewModel @Html.DropDownListFor( x => x.Year, Model.Years, "-- 选择年份 --" ) @Html.DropDownListFor( x => x.Month, Enumerable.Empty<SelectListItem>(), "-- 选择月份 --" ) <script> $('#Year').change(function () { var selectedYear = $(this).val(); if (selectedYear != null && selectedYear != '') { $.getJSON('@Url.Action("Months")', { year: selectedYear }, function (months) { var monthsSelect = $('#Month'); monthsSelect.empty(); $.each(months, function (index, month) { monthsSelect.append($('<option>', { value: month.value, text: month.text })); }); }); } }); </script></code>
この変更されたコードは、モデルにわずかな調整を加え、コントローラーから年データを取得するための関数を追加して、コードをより明確にし、保守と拡張を容易にします。 ビュー内の JavaScript も、準拠性を高めるためにわずかに調整されています。 必要な jQuery ライブラリがプロジェクト内で正しく参照されていることを確認してください。
以上がC# を使用して ASP.NET MVC 3 でカスケード ドロップダウンを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。