meaning select country fill City and select City fill District in edit or create both
in edit view i can get value selected previous for country and city for employee i need to edit
@model WebCourse.Models.Customemployee2
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Edit</title>
<script src="~/scripts/jquery-1.10.2.js"></script>
<script>
$(function () {
$("#CountryId").change(function () {
$("#citylist").empty();
// alert("error");
var x = $(this).val();
$.ajax({
url: "/empcourse/getcitybyid",
data: { id: x },
success:function(res)
{
$.each(res, function (i, e) {
if (e.Id == $("#cityidhidden").val())
{
$("#citylist").append("<option selected value='" + e.Id + "'>" + e.CityName + "<option>")
}
else
{
$("#citylist").append("<option value='" + e.Id + "'>" + e.CityName + "<option>")
}
});
}
});
});
$("#CountryId").change();
$("#citylist").change(function () {
$("#districtlist").empty();
// alert("error");
var y = $(this).val();
$.ajax({
url: "/empcourse/getdistrictbyid",
data: { id: y },
success: function (res) {
$.each(res, function (i, e) {
if (e.Id == $("#disthidden").val()) {
$("#districtlist").append("<option selected value='" + e.Id + "'>" + e.DistrictName + "<option>")
}
else
{
$("#districtlist").append("<option value='" + e.Id + "'>" + e.DistrictName + "<option>")
}
});
}
});
});
$("#citylist").change();
});
</script>
</head>
<body>
<div>
@using (Html.BeginForm())
{
<div>
<input type="hidden" value="@ViewBag.Cityid" id="cityidhidden" />
<input type="hidden" value="@ViewBag.dist" id="disthidden" />
Name:@Html.TextBoxFor(a => a.Name)
<br />
Country:@Html.DropDownList("CountryId")
<br />
City:<select id="citylist" name="CityId"></select>
<br />
District:<select id="districtlist" name="DistrictId"></select>
<br />
<input type="submit" />
</div>
}
</div>
</body>
</html>
in Edit function in controller empcourse
public class empcourseController : Controller
{
mycourseEntities db = new mycourseEntities();
// GET: empcourse
public ActionResult Edit(int id)
{
Employee old = db.Employees.Find(id);
if (old != null)
{
// country and city working
//district not working
int countryid = old.Destrict.City.Country.Id;
var vm = new Customemployee2();
vm.Name = old.Name;
ViewBag.CountryId = new SelectList(db.Countries.ToList(), "Id", "CountryName",countryid);
ViewBag.Cityid = old.Destrict.City.Id;
ViewBag.dist = old.DistrictId;
return View(vm);
}
//getcitybyid retrieve city it call in ajax in jquery and it working
public JsonResult getcitybyid(int id)
{
db.Configuration.ProxyCreationEnabled = false;
return Json(db.Cities.Where(a => a.CountryId == id), JsonRequestBehavior.AllowGet);
}
//getdistrictbyid retrieve district it call in ajax in jquery and it working
public JsonResult getdistrictbyid(int id)
{
db.Configuration.ProxyCreationEnabled = false;
return Json(db.Destricts.Where(a => a.CityId == id), JsonRequestBehavior.AllowGet);
}
}
in model Customemployee2
public class Customemployee2
{
public string Name { get; set; }
public int DistrictId { get; set; }
}
}