Я не фронтэнд, но я должен что-то сделать.
У меня есть два списка:
- showTeam
- showMember - каскадирование на основе showTeam.
В исходном коде HTML я вижу все элементы, размещенные как option
, но когда я нажимаю DropDownList, я вижу 0 элементов для выбора. Если я уберу селектор выбора, все элементы будут видны. Любая помощь приветствуется.
@Html.DropDownList("showTeams", null, "-Select Team-", htmlAttributes: new { id = "ddshowTeams", @class = "selectCountry selectpicker show-tick form-control" })
@Html.DropDownList("showMembers", null, "-Select Team-", htmlAttributes: new { id = "ddshowMembers", @class = " selectCountry selectpicker show-tick form-control" })
Ajax call:
debugger;
$(document).ready(function () {
//Dropdownlist Selectedchange event
$("#ddshowTeams").change(function () {
alert("pehla andar");
$("#ddshowMembers").empty();
$.ajax({
type: 'POST',
url: '@Url.Action("GetListLabels","CTComparer")',
dataType: 'json',
data: { id: $("#ddshowTeams").val() },
success: function (mems) {
console.log("wich ayaeee");
// states contains the JSON formatted list
// of states passed from the controller
$.each(mems, function (i, member) {
//alert('<option value="'
// + member.Value + '">'
// + member.Text + '</option>');
$("#ddshowMembers").append('<option value="'
+ member.Value + '">'
+ member.Text + '</option>');
});
},
error: function (ex) {
alert('Failed to retrieve states.' + ex);
}
});
return false;
})
});
Метод Джсона:
[HttpPost]
public ActionResult GetListLabels(int id)
{
var list = GetLabelList(id)
.Select(p =>
new SelectListItem
{
Value = "",
Text = p.Name
});
// this.ViewBag.SourceLabels = this.GetListLabelsSelectedItems(id);
// this.ViewData["showMembers"] = this.GetListLabelsSelectedItems(0);
return Json(list, JsonRequestBehavior.AllowGet);
}