如何从数据库中获取基于级联下拉列表选择值的属性值?
我想根据从级联下拉列表中传递所选项目的ID来获取实体的属性…在级联下拉列表的级别1或级别2中的每次更改时,必须更新价格。
我已经实现了级联下拉列表。 当我从第1级选择任何项目时,页面加载Leaguedropdown(第1级)填充和第二个LeagueDivisiondropdown(第2级)填充。我必须实施价格计算器 ,它应根据级联下拉列表中的选定项目计算价格值,所有价格均为存储在数据库中,我正在使用Entity Framework。 我正在使用.change()方法并发送Level 2的getJson请求,它正常工作。 我也想在Level 1上使用相同的function,但我已经使用.change()方法来填充LeagueDivision,所以我也不知道如何在Level 1上实现它。
如果有人指导我并感激,我将不胜感激。
这是视图和脚本
@using (Html.BeginForm("PriceCalculatorIndex", "PriceCalculator", FormMethod.Post, new { enctype = "multipart/form-data" })) { @Html.LabelFor(m => m.SelectedLeague, new { @class = "control-lebel" }) @Html.DropDownListFor(m => m.SelectedLeague, Model.LeagueList, new { @class = "form-control" }) @Html.ValidationMessageFor(m => m.SelectedLeague) @Html.LabelFor(m => m.SelectedLeagueDivision, new { @class = "control-lebel" }) @Html.DropDownListFor(m => m.SelectedLeagueDivision, Model.LeagueDivisionList, new { @class = "form-control" }) @Html.ValidationMessageFor(m => m.SelectedLeagueDivision) @Html.LabelFor(m => m.Price) @Html.DisplayFor(m => m.Price) } var leaguedivisionUrl = '@Url.Action("Fetchleaguedivision")'; var updatePrice = '@Url.Action("updatePrice")'; var divisions = $('#SelectedLeagueDivision'); $('#SelectedLeague').change(function () { divisions.empty(); $.getJSON(leaguedivisionUrl, { ID: $(this).val() }, function (data) { if (!data) { return; } divisions.append($('').val()); $.each(data, function (index, item) { divisions.append($('').val(item.Value).text(item.Text)); }); }); }); $('#SelectedLeagueDivision').change(function () { $.getJSON(updatePrice, { LeagueDivisionId: $(this).val(), LeagueId: $('#SelectedLeague').val() }, function (data) { if (!data) { return; } alert(data); //document.getElementById('#message').innerHTML = data; }); });
JSON结果从数据库中获取价格
public JsonResult updatePrice(int LeagueId, int LeagueDivisionId) { HostBoostersDBEntities2 db = new HostBoostersDBEntities2(); CalculatorPrice updatedPrice = db.CalculatorPrices .Where(x => x.LeagueId == LeagueId && x.LeagueDivisionId == LeagueDivisionId) .FirstOrDefault(); decimal updatedPriceToView = (decimal)updatedPrice.Price; return Json(updatedPriceToView.ToString(), JsonRequestBehavior.AllowGet); }
请试试这段代码。 参考我的javascript评论你认为我仍然误解了这个问题。
我已经以这种方式成功实施了。
@using (Html.BeginForm("PriceCalculatorIndex", "PriceCalculator", FormMethod.Post, new { enctype = "multipart/form-data" })) { @Html.LabelFor(m => m.SelectedLeague, new { @class = "control-lebel" }) @Html.DropDownListFor(m => m.SelectedLeague, Model.LeagueList, new { @class = "form-control" }) @Html.ValidationMessageFor(m => m.SelectedLeague) @Html.LabelFor(m => m.SelectedLeagueDivision, new { @class = "control-lebel" }) @Html.DropDownListFor(m => m.SelectedLeagueDivision, Model.LeagueDivisionList, new { @class = "form-control" }) @Html.ValidationMessageFor(m => m.SelectedLeagueDivision) }
- 为什么我的AJAXoned Action的回复没有被调用者视为成功?
- 如何在javascript中将列表设置为kendo网格数据源?
- validation客户端下拉菜单中所选月份和年份的选定日期
- 将asp.net mvc ajax actionlink重写为jquery / ajax语句
- 在asp.net mvc中使用jquery ajax提交post后更新部分视图
- 使用jQuery和部分视图在MVC中添加新的DropDownList项
- MVC JSON方法将无效的JSON返回给JQuery?
- 在文本框上手动设置不显眼的validation错误
- 使用jQueryvalidation的ASP.Net MVC Ajax表单