文章详情页
				ASP.NET MVC通过勾选checkbox更改select的内容
浏览:661日期:2022-06-08 18:35:42
					
					
					遇到了这样的一个需求:通过勾选checkbox来更改select的内容。
在没有勾选checkbox之前是这样的:

在勾选checkbox之后是这样的:

想通过ajax异步来实现。所以,从控制器拿到的json数据,在控制器中应该先是Dictionary<string, string>类型,然后再转换成json格式。
在没有勾选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<Old>    {new Old(){Id = 1, Name = "老版本1"},new Old(){Id = 2, Name = "老版本2"},new Old(){Id = 3, Name = "老版本3"}    };    IDictionary<string, string> result = new Dictionary<string, string> {{"-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<NewItem>    {new NewItem(){Id = 1, Name = "新版本1"},new NewItem(){Id = 2, Name = "新版本2"}    };    IDictionary<string, string> result = new Dictionary<string, string> { { "-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";}<h2>Index</h2><div>    <select id="v"></select></div><div>    <span>是否选择新版本:</span><input type="checkbox" id="cn"/></div>@section scripts{    <script type="text/javascript">$(function () {    //初始获取老版本    getOldOnes();    //勾选checkbox事件    $("#cn").on("change", function() {if ($(this).is(":checked")) {    getNewOnes();} else {    getOldOnes();}    });});//获取老版本function getOldOnes() {    $.getJSON("@Url.Action("GetOld","Home")", function(data) {var $s = $("#v");$s.children().remove();$.each(data, function(key, value) {    $s.append("<option value="" + key + "">" + value + "</option>");});$s.effect("shake", { times: 4 }, 100);    });}//获取新版本function getNewOnes() {    $.getJSON("@Url.Action("GetNew","Home")", function (data) {var $s = $("#v");$s.children().remove();$.each(data, function (key, value) {    $s.append("<option value="" + key + "">" + value + "</option>");});$s.effect("shake", { times: 4 }, 100);    });}    </script>}以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
 标签:
						ASP.NET
					
					
					
					
					
					
					
					相关文章:
1. ASP.NET MVC使用异步Action的方法2. ASP.NET MVC实现单个图片上传、限制图片格式与大小并在服务端裁剪图片3. ASP.NET MVC使用jQuery ui的progressbar实现进度条4. ASP.NET MVC使用Identity增删改查用户5. python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例6. vue中关于checkbox使用的问题7. ASP.NET MVC使用JSAjaxFileUploader插件实现单文件上传8. ASP.NET MVC扩展带验证的单选按钮9. Ant design vue table 单击行选中 勾选checkbox教程10. ASP.NET MVC把数据库中枚举项的数字转换成文字
排行榜
				
			
 网公网安备
网公网安备