【发布时间】:2016-01-21 16:19:10
【问题描述】:
我有一个 Mvc 应用程序。在一个视图中的该应用程序中,我有 2 个@html.dropdownlists。我在<script/> 标记中创建一个函数,将在第一个下拉列表的 selectedIdnexchange 事件中调用,并获取所选值并使用 ajax 调用发送到控制器。控制器将返回结果并尝试将该结果与第二个下拉列表绑定。我想在第二个下拉列表中显示所选状态的所有 RTO 名称。
这是我的下拉菜单
@Html.DropDownList("State", new List<SelectListItem> {
new SelectListItem{Text="Andaman and Nicobar Islands",Value="Andaman and Nicobar Islands"},
new SelectListItem{Text="Andhra Pradesh",Value="Andhra Pradesh"},
new SelectListItem{Text="Arunachal Pradesh",Value="Arunachal Pradesh"},
new SelectListItem{Text="Assam",Value="Assam"},
new SelectListItem{Text="Bihar",Value="Bihar"},
new SelectListItem{Text="Chandigarh",Value="Chandigarh"},
new SelectListItem{Text="Chhattisgarh",Value="Chhattisgarh"},
new SelectListItem{Text="Dadra and Nagar Haveli",Value="Dadra and Nagar Haveli"},
new SelectListItem{Text="Daman and Diu",Value="Daman and Diu"},
new SelectListItem{Text="National Capital Territory of Delhi",Value="National Capital Territory of Delhi"},
new SelectListItem{Text="Goa",Value="Goa"} }, null, new { @class="ddlHtml form-control",@id="ddlState"})
@Html.DropDownList("RTOListItem", new List<SelectListItem> {
new SelectListItem{Text="None",Value="-1"}
}, null, new { @class = "ddlHtml form-control", @id = "DDlforLocations" })
这是我的脚本函数
$(document).on('change', '#ddlState', function () {
var v = document.getElementById("ddlState");
var statevalue = v.options[v.selectedIndex].text;
alert(statevalue);
var j = v.selectedIndex;
if (j == 0) {
sweetAlert("Oops..", "choose correct State", "error");
}
else {
$.ajax({
url: '@Url.Action("GetLocations","Home")',
type: 'GET',
datatype: 'json',
data: { selectedState: statevalue }
})
.success(function (data) {
$('#DDlforLocations').html(data);
});
}
});
这是我的控制器
public JsonResult GetLocations(string selectedState) {
ConsumerNomineeFormEntities db= new ConsumerNomineeFormEntities();
RTOCode tbl = new RTOCode();
var optionList = db.RTOCodes.Where(a => a.State == selectedState).Select(a => "<option value='" + a.Location + "'>" + a.Location + "</option>");
var val = tbl.Location;
return Json(optionList, JsonRequestBehavior.AllowGet);
}
请帮助我。将从控制器返回的记录与第二个下拉列表绑定
【问题讨论】:
-
您的问题是什么?有问题吗?
-
@FelixCen 当我从第一个下拉列表中选择项目时,它会调用一个包含 ajax 调用的函数,用于将我的项目值发送到控制器,控制器会将结果返回给 ajax 调用。现在我想将该结果绑定到第二个下拉列表作为下拉列表的值和文本
标签: c# jquery ajax asp.net-mvc dropdown