ホームページ >バックエンド開発 >C++ >C# を使用して ASP.NET MVC 3 でカスケード ドロップダウンを作成する方法

C# を使用して ASP.NET MVC 3 でカスケード ドロップダウンを作成する方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-11 15:41:43715ブラウズ

How to Create a Cascading Dropdown in ASP.NET MVC 3 Using C#?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。