当我从DropdownList(校园)中选择一个项目时,我不确定我错过了什么我希望AutoPostBack触发并加载另一个正在构建的DropdownList但它没有发生....我正在努力工作使用DropDownListFor上的autopostback
有什么问题:以下代码适用于任何常规MVC 4布局但只有问题
TwitterBootStrap
布局,我需要更改或使用TwitterBootStrap布局做什么?
这是我的代码:,
@using (Ajax.BeginForm("CampusSelect", "Facility", new AjaxOptions { UpdateTargetId = "Campus_Building" }))
{
@Html.DropDownListFor(
m => m.CampusId,
new SelectList(Model.GetAllCampus(), "CampusId", "Text"),
string.Empty
)
}
<script type="text/javascript">
$('#CampusId').change(function () {
$(this).parents('form').submit();
});
</script>
答案 0 :(得分:1)
为简单起见,您可以使用以下代码应用onchange
事件。
@Html.DropDownListFor(
m => m.CampusId,
new SelectList(Model.GetAllCampus(), "CampusId", "Text"),
string.Empty,
new { onchange = "$(this.form).submit();"}
)
但是,你的脚本也应该按原样运行......它只是比较麻烦。我认为它不起作用,因为页面上有另一个元素id="CampusId"
。
答案 1 :(得分:1)
您使用了错误的重载。您没有设置下拉列表的ID。它应该是:
@Html.DropDownListFor(
m => m.CampusId,
new SelectList(Model.GetAllCampus(), "CampusId", "Text"),
new { id = "CampusId" }
)
然后你的脚本就可以了。
为避免与重载混淆,请使用TwitterBootstrapMVC:
@Html.Bootstrap().DropDownListFor(m => m.CampusId, new SelectList(Model.GetAllCampus(), "CampusId", "Text")).Id("CampusId")