首頁 > 後端開發 > C++ > 如何使用 C# 在 ASP.NET MVC 3 中實作級聯下拉選單?

如何使用 C# 在 ASP.NET MVC 3 中實作級聯下拉選單?

Patricia Arquette
發布: 2025-01-11 15:36:42
原創
617 人瀏覽過

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語法定義兩個下拉式選單:一個用於選擇年份,另一個用於選擇月份:

<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程式碼在更改所選年份後觸發對控制器操作Months的AJAX呼叫。然後,它使用傳回的JSON資料使用適當的月份填充第二個下拉式選單。

結論

這個方法提供了一種清晰簡潔的方法,可以使用C#在ASP.NET MVC 3中實作級聯下拉式選單。透過遵循這些步驟,您可以輕鬆建立使用者友好且反應迅速的介面來管理分層資料。

以上是如何使用 C# 在 ASP.NET MVC 3 中實作級聯下拉選單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板