【发布时间】:2018-04-16 07:45:03
【问题描述】:
我有两个下拉列表,当我从第一个中选择一个选项时,相关选项显示在第二个下拉列表中。我使用过 jquery,但我不知道它为什么不起作用。 这是cshtml页面:
<div class="form-group">
@Html.LabelFor(model => model.ProductSubGroup.ProductGroupID, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("ProductGroupID", (SelectList)ViewBag.Type, "-- انتخاب ---", htmlAttributes: new { @class = "form-control",id = "rdbGroup" })
@Html.ValidationMessageFor(model => model.ProductSubGroup.ProductGroupID, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.ProductSubGroupID, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("ProductSubGroupID", (SelectList)ViewBag.ProductSubGroupID, "-- انتخاب ---", htmlAttributes: new { @class = "form-control",id = "rdbSubGroup" })
@Html.ValidationMessageFor(model => model.ProductSubGroupID, "", new { @class = "text-danger" })
</div>
</div>
这是控制器
public ActionResult SelectCategory(int id)
{
var categoris = db.ProductSubGroup.Where(m => m.ProductGroup.ProductGroupID == id).Select(c => new { c.ProductSubGroupID, c.ProductSubGroupTitle});
return Json(categoris, JsonRequestBehavior.AllowGet);
}
// GET: Admin/Products/Create
public ActionResult Create()
{
ViewBag.ProductGroupID=new SelectList(db.ProductGroup,"ProductGroupID","Produ ctGroupTitle");
ViewBag.ProductSubGroupID = new SelectList(db.ProductSubGroup, "ProductSubGroupID", "ProductSubGroupTitle");
return View();
}
这是javascript
$('#rdbGroup').change(function () {
jQuery.getJSON('@Url.Action("SelectCategory")', { id: $(this).attr('value') }, function (data) {
$('#rdbSubGroup').empty();
jQuery.each(data, function (i) {
var option = $('<option></option>').attr("value", data[i].Id).text(data[i].Title);
$("#rdbSubGroup").append(option);
});
});
});
【问题讨论】:
-
任何控制台错误?
-
什么不起作用?你的脚本正在执行吗?你在打控制器吗?你遇到了什么错误?
-
为什么不用
$(this).val()而不是attr('value') -
它没有给我任何错误,但是当我选择一个组时,另一个下拉列表没有变化
标签: javascript c# jquery asp.net-mvc