我是MVC新手,我想创建一个带下拉列表的搜索表单,以便用户可以从类别中进行选择。下拉列表通过数据库填充。正如我研究的那样,这可以使用视图模型轻松完成,但我仍然对如何做到这一点感到困惑。任何人都可以通过明确的解释向我提供良好范例的链接吗?提前致谢。
答案 0 :(得分:0)
看起来我之前做过相同的例子我使用这个脚本调用函数来返回带有数据库结果的JSON文件以便你可以更改名称 视图:
<div class="col-md-8">
@Html.DropDownListFor(r=>r.locationID ,new SelectList(Model.Locations,"ID","Name"), new { @class = "form-control TowerLoc" ,id = "location", OnChange="ChangeContent()" })
</div>
<div class="col-md-6">
<label class="col-md-4 control-label">Tower</label>
<div class="col-md-8">
@Html.DropDownListFor(r=>r.TowerID, new SelectList(Model.Towers,"TowerID","TowerName"),new { @class = "form-control" , id="Towers"})
</div>
</div>
脚本:
<script>
$("#location").change(function () {
$("#Towers").find("option:gt(0)").remove();
$("#Towers").find("option:first").text("Loading...");
$.getJSON("/Inquiries/GetChildren", {
parentid: $(this).val()
}, function (json) {
$("#Towers").find("option:first").remove();
for (var i = 0; i < json.length; i++) {
$("<option/>").attr("value", json[i].TowerID).text(json[i].TowerName).appendTo($("#Towers"));
}
});
});
</script>
功能:
public JsonResult GetChildren(int parentID)
{
var children = (from g in _db.Towers.Where(r => r.ProvinceID == parentID).ToList()
select new Tower
{
TowerID = g.TowerID,
TowerName = g.TowerName
}).ToList();
return Json(children, JsonRequestBehavior.AllowGet);
}