我想在第一个下拉列表的onchange事件中发布一个表单来加载第二个下拉列表。
@using (Html.BeginForm())
{
<table>
<tr>
<td>@Html.LabelFor(s => s.Country)</td>
<td>@Html.DropDownListFor(s => s.Country, Model.Country, "Select Country", new { @Class = "form-control", @OnChange = "document.location.href = '/Display/StateSelection?Country=' + this.options[this.SelectedIndex].Value;' " })</td>
</tr>
<tr>
<td>@Html.LabelFor(s => s.State)</td>
<td>@Html.DropDownListFor(s => s.State, Model.State, new { @class = "form-control" })</td>
@*<td>@Html.DropDownListFor(s => s.State, Model.State, "Select State", new { @Class = "form-control", @onchange = "document.location.href ='/Display/CitySelection?StateID=' + this.options[this.SelectedIndex].Value;" })</td>*@
</tr>
@*<tr>
<td>@Html.LabelFor(s => s.City)</td>
<td>@Html.ListBoxFor(s => s.City, Model.City, new { @class = "form-control" })</td>
</tr>*@
</table>
@*<input type="submit" value="DisplayData" />*@
@*<input type="submit" value="DisplayData" onclick="location.href = '@Url.Action("DisplayView","Display")'"/>*@
}
public ActionResult DisplayView()
{
DisplayModel obj = new DisplayModel();
string CountryID = "0";
//string StateID = "0";
List<SelectListItem> CountryList = obj.CountryDetails();
List<SelectListItem> StateList = obj.StateDetails(CountryID);
//List<SelectListItem> CityList = obj.CityDetails(StateID);
//var CountryList = obj.CountryDetails(dm);
obj.Country = CountryList;// new SelectList(CountryList, "Value", "Text");
obj.State = StateList;
//obj.City = CityList;
TempData["CountryList"] = CountryList;
return View("DisplayView",obj);
}
public ActionResult StateSelection(String Country)
{
DisplayModel obj = new DisplayModel();
obj.Country = (List < SelectListItem >)TempData["CountryList"];
obj.State = obj.StateDetails(Country);
TempData.Keep("CountryList");
return View("DisplayView",obj);
}
From view, I'm passing the selected value to the controller, from controller calling the logic from model to load the list based on the country selected.
当我提交表单时,它按预期工作。任何人都可以告诉我如何根据在OnChange事件的第一个下拉列表中选择的值加载第二个下拉列表,而无需使用&#34;提交按钮&#34;提交表单。