栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用C#在ASP.NET MVC 3中创建级联下拉列表的最简单方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用C#在ASP.NET MVC 3中创建级联下拉列表的最简单方法

与往常一样,您从模型开始:

public class MyViewModel{    public int? Year { get; set; }    public int? Month { get; set; }    public IEnumerable<SelectListItem> Years    {        get        { return Enumerable.Range(2000, 12).Select(x => new SelectListItem {     Value = x.ToString(),     Text = x.ToString() });        }    }}

然后是一个控制器:

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        );    }}

最后是一个视图:

@model AppName.Models.MyViewModel@Html.DropDownListFor(    x => x.Year,     new SelectList(Model.Years, "Value", "Text"),    "-- select year --")@Html.DropDownListFor(    x => x.Month,     Enumerable.Empty<SelectListItem>(),    "-- select month --")<script type="text/javascript">    $('#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>

显然,您会注意到在我的示例中,我已经对所有值进行了硬编码。您应该通过使用诸如当年,当月,甚至可能从存储库中获取这些值之类的概念来改善这种逻辑,但是出于演示的目的,这足以使您走上正确的道路。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/382772.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号