ASP.NET MVC通过勾选checkbox更改select的内容
- 技术交流
- 2024-10-01 09:38:01
遇到了这样的一个需求:通过勾选checkbox来更改select的内容。
在没有勾选checkbox之前是这样的:
在勾选checkbox之后是这样的:
想通过ajax异步来实现。所以,从控制器拿到的json数据,在控制器中应该先是Dictionary
在没有勾选checkbox之前,select中内容对应的Model为:
public class Old { public int Id { get; set; } public string Name { get; set; } }
在勾选checkbox之后,select中内容对应的Model为:
public class NewItem { public int Id { get; set; } public string Name { get; set; } }
Home控制器中应该给出对应的json数据。
public class HomeController : Controller { public ActionResult Index() { return View(); } public ActionResult GetOld() { var olds = new List{ new Old(){Id = 1, Name = "老版本1"}, new Old(){Id = 2, Name = "老版本2"}, new Old(){Id = 3, Name = "老版本3"} }; IDictionary result = new Dictionary {{"-1","None"}}; foreach (var item in olds) { result.Add(item.Id.ToString(), item.Name); } return Json(result, JsonRequestBehavior.AllowGet); } public ActionResult GetNew() { var news = new List { new NewItem(){Id = 1, Name = "新版本1"}, new NewItem(){Id = 2, Name = "新版本2"} }; IDictionary result = new Dictionary { { "-1", "None" } }; foreach (var item in news) { result.Add(item.Id.ToString(), item.Name); } return Json(result, JsonRequestBehavior.AllowGet); } }
在Home/Index.cshtml视图中,根据checkbox是否勾选来呈现不同的内容。
@{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; }Index
是否选择新版本:@section scripts { }
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对讯客的支持。如果你想了解更多相关内容请查看下面相关链接
ASP.NET MVC通过勾选checkbox更改select的内容由讯客互联技术交流栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“ASP.NET MVC通过勾选checkbox更改select的内容”