1
我想在mvc中使用级联下拉列表。一些它如何工作,但有一些问题。实际上当第一个视图呈现我有一个下拉帐户类型的基础上,这个下拉我必须填充组下拉。但是当第一个下拉菜单被渲染时,它必须选择房地产经纪人和赞助商,默认情况下,房地产经纪人是第一个选择的选项,然后所有与它相关的团队被渲染。但无法在第一时间获得价值。什么是任何人都可以建议我的问题。级联下拉不起作用
这里是我的代码
public class ViewModel
{
[Required]
public SelectList AccountType { get; set; }
public string SelectedAccountType { get; set; }
public IEnumerable<SelectListItem> Group { get; set; }
public string SelectedGroup { get; set; }
}
[HttpGet]
public ActionResult Index(ViewModel viewModel)
{
List<SelectListItem> groups = sDbContext.Groups
.Where(o => o.GroupId > 1 && o.Deleted == false && o.AccountSubId == 1).OrderBy(uu => uu.GroupName)
.Select(o => new SelectListItem()
{
Value = o.GroupId.ToString(),
Text = o.GroupName
}).ToList();
groups.Insert(0, new SelectListItem() { Value = "0", Text = "All" });
viewModel.Group = groups;
viewModel.AccountType = new SelectList(sDbContext.AccountTypes.Where(o => o.AccountTypeId != 0), "AccountTypeId", "AccountName");
reportService.GetReportsListGrid();
return View(viewModel);
}
观点:
@model App1.ViewModels.ViewModel
@{
List<SelectListItem> list = new List<SelectListItem>();
}
@using (Html.BeginForm("Index", "routee", FormMethod.Post, new { @id = "appForm" }))
{
Account Type
@Html.DropDownListFor(m => m.SelectedAccountType, (IEnumerable<SelectListItem>)Model.AccountType, new { @class = "form-control" })
@Html.DropDownListFor(model => model.SelectedGroup, list, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.SelectedGroup)
}
,这里是我的脚本..
<script type="text/javascript">
$('#SelectedAccountType').change(function() {
OnAccountTypeChange();
});
function OnAccountTypeChange() {
var id = $("#SelectedAccountType :selected").val();
var groupId = $('#SelectedGroup').val();
if (id != "") {
alert(id);
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: '@Url.Action("GetGroupsByAccountSubTypeId", "Common", new { area = "" })',
data: { "AccountSubId": id },
dataType: "json",
beforeSend: function() {
//alert(id);
},
success: function (data) {
var items = "<option value='0' selected='selected'>-All-</option>";
$.each(data, function (i, groups) {
items += "<option value='" + groups.Value + "'>" + groups.Text + "</option>";
});
$('#SelectedGroup').html(items);
if (groupId != undefined || groupId != null || groupId != "")
$('#SelectedGroup').val(groupId);
},
error: function (result) {
console.log('Service call failed: ' + result.status + ' Type :' + result.statusText);
},
complete: function() {
$('#SelectedGroup').prop('disabled', false);
}
});
}
else {
$('#SelectedGroup').html(items);
}
}
</script>
这可能会有帮助:http://stackoverflow.com/questions/22952196/cascading-dropdown-lists-in- ASP-净-MVC-5/30945495#30945495 –