在MVC3页面EF4上使用AJAX的下拉列表部分回发页面

我有一个列出国家/地区名称的下拉列表当用户从下拉列表中选择任何国家/地区时。根据国家/地区选择,我需要从数据库加载数据(AgencyName,AgencyAddr,Pincode)并填写右侧的TextBoxs。所选国家/地区在下拉列表中应保持选中状态。

关于选择更改下拉列表,我不希望整个页面回发。请帮助我

这是我的EF4 – ModelClasses

public class Country { public int CountryID { get; set; } public string CountryName { get; set; } } public class AgencyInfo { public int CountryID { get; set; } public string AgencyName { get; set; } public string AgencyAddr { get; set; } public int Pincode { get; set; } } 

这是我的MVC4剃刀页面Index.cshtml

  @using (Ajax.BeginForm( "Index", "Home", new AjaxOptions { UpdateTargetId = "result" } )) { @Html.DropDownList("SelectedCountryId", Model.CountryList, "(Select one event)") } 
Country Details:
Country Name
@Html.EditorFor(model => model.Countries.Name) @Html.ValidationMessageFor(model => model. Countries.Name)
Agency Name
@Html.EditorFor(model => model.AgencyInfo.AgencyName) @Html.ValidationMessageFor(model => model.AgencyInfo.AgencyName)
Address Info
@Html.EditorFor(model => model. AgencyInfo.Address) @Html.ValidationMessageFor(model => model. AgencyInfo.Address)
Pin Code
@Html.EditorFor(model => model. AgencyInfo.PinCode) @Html.ValidationMessageFor(model => model. AgencyInfo.PinCode)
@end of result div@

有什么建议 ? 谢谢

你想使用ajax。

添加事件处理程序以监视选择更改。 当下拉列表更改时,获取当前国家/地区并发送ajax请求。 当ajax请求返回时使用jQuery更新DOM。

示例视图:

 

示例控制器方法:

 public class HomeController : Controller { [HttpGet] public JsonResult GetInfo(string country) { return Json(new { agent = country, other = "Blech" }, JsonRequestBehavior.AllowGet); } } 

其他一些例子:

添加一个控制器方法来处理ajax请求: http : //www.cleancode.co.nz/blog/739/ajax-aspnet-mvc-3

调用ajax并更新DOM: http : //www.w3schools.com/jquery/tryit.asp? filenamename = tryjquery_ajax2