Asp.net mvc 在MVC中,如何在下拉列表更改时调用动作名称?
如何在选择第一个dropdownlist时将数据绑定到第二个dropdownlist 我已经使用强类型视图绑定了第一个dropdownlist 现在,如何调用操作名称并在选择第一个dropdownlist时绑定第二个dropdownlistAsp.net mvc 在MVC中,如何在下拉列表更改时调用动作名称?,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,如何在选择第一个dropdownlist时将数据绑定到第二个dropdownlist 我已经使用强类型视图绑定了第一个dropdownlist 现在,如何调用操作名称并在选择第一个dropdownlist时绑定第二个dropdownlist <tr> <td>Select Make:</td> <td>@Html.DropDownListFor(m => m.SelectedMake, Mod
<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>
您可以将Jquery函数放在下拉列表的更改上。比如说
<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>
但是为了进一步的效果,您必须调用Ajax调用方法并获取数据。在该方法成功之后,您必须将其余数据附加到ddlModel上。就像这样。
$(document).ready(function(){
$("#ddlMake").change(function(){url.action('Controller Name','Action Method Name')})
})
$(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>');
}
});)})
})
如果我正确理解了您的问题,那么您只需要执行简单的jquery.post
$("#ddlMake").change(function () {
$.post("controller/ActionName", function (data) {
$.each(data, function (val, txt) {
$("#ddlModel").append('<option value="' + val + '">' + txt + '</option>');
});
});
});
您需要使用ajax。有关创建级联dropdownlists的示例,是否有一种不使用Ajax和JQuery的方法?是的,您也可以使用Viewbag来实现。但这将导致您进行完整的回发。
public JsonResult GetModel()
{
//your dropdown datasource
return json(ddlModeldatasurce,JsonRequestBehavior.AllowGet);
}
$("#ddlMake").change(function () {
$.post("controller/ActionName", function (data) {
$.each(data, function (val, txt) {
$("#ddlModel").append('<option value="' + val + '">' + txt + '</option>');
});
});
});
public Actionresult GetModel()
{
//your dropdown datasource
return json(ddlModeldatasurce);
}