@model TestDropdownList.Models.Person <script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script> @{ ViewBag.Title = "Index"; } <h2>Index</h2> @using (Html.BeginForm()) { @Html.LabelFor(x => x.CountryCode, "Country") @Html.DropDownListFor(x => x.CountryCode, new List<SelectListItem>() ) } <script type="text/javascript"> $(function () { $.ajax({ url: '/Home/CountryList/', type: 'POST', dataType: 'json', success: function (data) { var options = $('#CountryCode'); $.each(data, function () { // alert(this.Key + " " + this.Value); // came from .NET Dictionary's Key Value pair options.append($('<option />').val(this.Key).text(this.Value)); }); } }); $('#CountryCode').change(function () { // alert('hello'); alert($(this).val() + ": " + $('option:selected', $(this)).text()); }); }); </script>
The Controller:
[HttpPost] public JsonResult CountryList() { // normally, you pass a list obtained from ORM or ADO.NET DataTable or DataReader return Json(new Dictionary<string, string>() { { "PH", "Philippines" }, { "CN", "China" }, { "CA", "Canada" }, { "JP", "Japan" } }.ToList()); }
Related to: http://www.ienablemuch.com/2011/05/cascading-dropdownlist-using-aspnet-mvc.html
Search Keywords: json result asp.net mvc html.dropdownlist callback
No comments:
Post a Comment