我有点问题,我有三个型号:
模特 - 城市
public int ID{get;set;}
public String Name { get; set; }
模型 - 郊区
public int ID { get; set; }
public int CityId {get;set;}
public string Name { get; set; }
public String Description { get; set; }
public virtual ICollection<City> Cities { get; set; }
model- CitySuburbContext
public DbSet<City> City { get; set; }
public DbSet<Suburb> Suburb { get; set; }
这是我的控制者:
public ActionResult Index()
{
return View("Index",db.Suburb.ToList());
}
public ActionResult getSuburb(int id)
{
return Json(db.Suburb.Where(s => s.ID.Equals(id)).ToList(), JsonRequestBehavior.AllowGet);
}
这是我的观点(现在)
@model Admin.Models.Suburb
<header>
<script src="~/Scripts/dddd.js" type="text/javascript"></script>
</header>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@Html.DropDownListFor(m => m.CityId, new SelectList( ((List<SelectListItem>)ViewData["cities"]),"Value","Text"), new { @onChange = "fillSuburb()" })
@Html.DropDownListFor(m => m.ID, Enumerable.Empty<SelectListItem>())
我的问题是。
如何在我的视图中获取数据。我使用CitySuburbContext模型吗? 如果是这样的话?
此外,我想要2个下拉列表,一个包含城市列表,另一个包含所选城市的郊区列表。 我不知道如何解决这个问题,请帮助
答案 0 :(得分:0)
在视图绑定时绑定您的城市和郊区下拉列表,如下所示:
@Html.DropDownListFor(m => m.cityId, new SelectList( ((List<SelectListItem>)ViewData["cities"]),"Value","Text"), new { @onChange = "fillSuburb()" })
@Html.DropDownListFor(m => m.suburbId, Enumerable.Empty<SelectListItem>())
注意 new {@onChange =&#34; fillSuburb()&#34; } 是一个带有HTML select标签的java脚本onchange事件绑定,在城市更改时调用fillSuburb()方法。
function fillSuburb()
{
var cityId = $("#cityId").val();
$.ajax
{
url:'/home/getSuburb/'+cityId;
method:'POST'
onSuccess: function(data)
{
var suburbSelect = $("#suburbId") ;
suburbSelect.empty();
for(var suburb in data) {
$("<option />", {value: suburb.ID , text: suburb.Name }).appendTo(suburbSelect);
}
}
}
}
从控制器发送IEumrable列表:
public ActionResult getSuburb(int id)
{
return Json(_dataContext.Suburb.Where(s=>s.ID.equals(id)).toList(), JsonBehaviour.AllowGet);
}