在我的主页上,有汽车下拉列表。而且效果很好。
当我从下拉列表中选择一辆汽车时,我想在同一视图中从下拉列表中检索属于所选汽车的所有汽车模型,在下拉列表中说。在同一视图中(在主视图中)具有选定汽车的汽车和模型的DropDownlist。我尝试了PartialView,但在PartielView和html代码方面却不是很好
这是我获取CarModels
的操作,我认为这必须是PartialView
[HttpGet]
public ActionResult GetCarModel(int? carId)
{
List<CarModelVW> listOfCarModel;
using (Db db = new Db())
{
listOfCarModel = db.CarModel.ToArray()
.Where(x => carId == null || carId == 0 || x.carId == carId)
.Select(x => new CarModelVW(x))
.ToList();
}
return View(listOfCarModel);
}
在具有DropDownlist的主视图中
<div class="form-group">
<label class="control-label col-md-2" for="HasSidebar"> Car </label>
<div class="col-md-10">
@Html.DropDownListFor(model => model.CarId, Model.Cars, "---Select car---", new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.CarId, "", new { @class = "text-danger" })
</div>
</div>
在下拉列表下面,我想获取选定汽车的所有车型
但是我认为我必须使用ID或span ..创建<div> </div>
,但是我不确定如何在此处进行操作。
这是我要使用的javascript
$("#CarId").change(function () {
var carId = $(this).val();
if (carId) {
window.location = "/an/GetCarModel?carId=" + carId;
}
return false;
});
如何在Dropdownlist视图下获得此GetCarModel操作?预先谢谢你。
答案 0 :(得分:0)
如果要在同一页面上查看结果,则需要使用Ajax。
在要显示结果的主视图中添加此div标签:
<div id="carmodels"></div>
如下更改您的jquery函数:
$("#CarId").change(function () {
var carId = $(this).val();
if (carId)
{
$.get("/an/GetCarModel?carId=" + carId, function(data){
$("#carmodels").html(data);
});
}
});
答案 1 :(得分:0)
就像罗曼所说的那样,您应该导航至该控件,而不是导航至该URL。
首先,在您的下拉列表中添加一个ID。
第二,在Onchange函数中,添加ajax调用来获取汽车:
var dropdownval = $("#//Id of dropdown").val();
var json = '{Id: ' + dropdownval + '}';
$.ajax({
url:'@Url.Action("GetCarModel", "//The controller")',
type:'POST',
data: json,
contentType:'Application/json',
success:function(result){
//Do whatever
}
})
然后您可以对返回给ajax调用的结果做任何事情