如何在MVC中的下拉更改时调用操作名称? [英] How to call a Action Name on dropdown change in MVC?
本文介绍了如何在MVC中的下拉更改时调用操作名称?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在选择第一个下拉列表时将数据绑定到第二个下拉列表?
How to bind data to second dropdownlist on selecting first dropdownlist ?
我使用强类型视图绑定了第一个下拉列表.
I have bind first dropdownlist using strongly typed view.
现在如何调用动作名称并在选择的第一个下拉列表上绑定第二个下拉列表?
Now how to call action name and bind second dropdownlist on selection first dropdownlist?
<tr>
<td>Select Make:</td>
<td>@Html.DropDownListFor(m => m.SelectedMake, Model.MakesList, new { @class = "form-control", @onchange = "FillModel()" })</td>
</tr>
<tr>
<td>Select Model</td>
<td>@Html.DropDownListFor(m => m.SelectedMake, Model.MakesList)</td>
</tr>
动作名称
public ActionResult FillModel(int MakeId)
{
var makedata = objVehicleContext.VehicleMakes.Where(m=>m.MakeId==MakeId);
ViewBag.makelist = makedata.ToList();
return View();
}
推荐答案
您可以将Jquery函数放在下拉列表的更改中.例如
You can Put Jquery function on change of dropdown list. For Example
<tr>
<td>Select Make:</td>
<td>@Html.DropDownListFor(m => m.SelectedMake, Model.MakesList, new { @class = "form-control", @onchange = "FillModel()", id="ddlMake"
})</td>
</tr>
<tr>
<td>Select Model</td>
<td>@Html.DropDownListFor(m => m.SelectedMake, Model.MakesList,new {@id="ddlModel"})</td>
</tr>
这是一种在下拉菜单更改时调用action方法的简单解决方案.
$(document).ready(function(){
$("#ddlMake").change(function(){url.action('Controller Name','Action Method Name')})
})
但是要获得进一步的效果,您必须调用Ajax调用方法并获取数据.之后,方法成功后,您必须将其余数据附加到ddlModel上.就像它一样.
$(document).ready(function(){
$("#ddlMake").change(function(){
$.ajax({
type:'POST',
url:'url.action('Controller Name','Action Method Name')'
data:{id:$('#ddlMake').val()},
sucess:{
$("#ddlModel").append('<option value="' + ModelId.Value + '">' + Model.Text + '</option>');
}
});)})
})
您需要使用Controller
public JsonResult GetModel()
{
//your dropdown datasource
return json(ddlModeldatasurce,JsonRequestBehavior.AllowGet);
}
这篇关于如何在MVC中的下拉更改时调用操作名称?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文