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

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

Patricia Arquette
リリース: 2025-01-11 15:36:42
オリジナル
664 人が閲覧しました

How to Implement Cascading Dropdowns in ASP.NET MVC 3 Using C#?

C# を使用した ASP.NET MVC 3 でのカスケード ドロップダウン メニューの実装: 完全ガイド

ASP.NET MVC 3 でカスケード ドロップダウン メニューを作成する場合、そのバージョンで非推奨になった古いソリューションやコマンドに遭遇すると、圧倒されてしまうことがあります。このガイドでは、C# を使用してカスケード ドロップダウン メニューを作成し、MVC 3 との互換性を確保するための段階的な方法を説明します。

モデルデザイン

MVC アプリケーションの基礎はモデルです。この例では、ドロップダウン メニューのデータを表す MyViewModel というモデルを作成します:

<code class="language-csharp">public class MyViewModel
{
    public int? Year { get; set; }
    public int? Month { get; set; }

    // 第一个下拉菜单的年份选项集合
    public IEnumerable Years
    {
        get
        {
            return Enumerable.Range(2000, 12).Select(x => new SelectListItem
            {
                Value = x.ToString(),
                Text = x.ToString()
            });
        }
    }
}</code>
ログイン後にコピー

ビルドコントローラー

コントローラーはモデルとビューの間の仲介者として機能します。ここでは、最初のドロップダウンに年を入力するアクションと、選択した年に基づいて月を提供する別のアクションを定義します:

<code class="language-csharp">public class HomeController : Controller
{
    public ActionResult Index()
    {
        var model = new MyViewModel();
        return View(model);
    }

    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>
ログイン後にコピー

ビューの作成

ビューには、アプリケーションのユーザー インターフェイスが表示されます。この例では、Razor 構文を使用して 2 つのドロップダウン メニューを定義します。1 つは年を選択するため、もう 1 つは月を選択するためです:

<code class="language-csharp">@model AppName.Models.MyViewModel

@Html.DropDownListFor(
    x => x.Year,
    new SelectList(Model.Years, "Value", "Text"),
    "-- 选择年份 --"
)

@Html.DropDownListFor(
    x => x.Month,
    Enumerable.Empty(),
    "-- 选择月份 --"
)

<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 コードは、選択した年を変更してから数か月後にコントローラー アクションへの AJAX 呼び出しをトリガーします。次に、返された JSON データを使用して、2 番目のドロップダウン メニューに適切な月を設定します。

結論

このアプローチは、C# を使用して ASP.NET MVC 3 にカスケード ドロップダウン メニューを実装する明確かつ簡潔な方法を提供します。これらの手順に従うことで、階層データを管理するための使いやすく応答性の高いインターフェイスを簡単に作成できます。

以上がC# を使用して ASP.NET MVC 3 にカスケード ドロップダウンを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート