View Full Version : سوال: نمایش لیست شهرهای هر کشور
farhad26
یک شنبه 09 خرداد 1395, 13:55 عصر
سلام به همه ی دوستان
قصد دارم لیست شهر های هر کشوری رو نمایش بدم
بصورتی که وقتی روی نام هر کشوری کلیک شد صفحه رفرش بشه و شهر های مربوط به اون کشور نمایش داده بشه
مثل تصویر زیر:
Moien Tajik
یک شنبه 09 خرداد 1395, 15:43 عصر
باید لیست کشور ها و شهرهای هر کشور رو توی دیتابیس داشته باشین ، شهرها با هر کشور Foreign key دارن ، توی صفحه اصلی با foreach لیست کشور ها رو با ActionLink نشون میدین ، هر کشور یک Route value داره که بعد از کلیک روی هر کشور صفحه رفرش میشه و لیست شهرهای اون کشور با foreach نمایش داده میشه که با Scaffold هم میشه .
farhad26
دوشنبه 10 خرداد 1395, 22:15 عصر
باید لیست کشور ها و شهرهای هر کشور رو توی دیتابیس داشته باشین ، شهرها با هر کشور Foreign key دارن ، توی صفحه اصلی با foreach لیست کشور ها رو با ActionLink نشون میدین ، هر کشور یک Route value داره که بعد از کلیک روی هر کشور صفحه رفرش میشه و لیست شهرهای اون کشور با foreach نمایش داده میشه که با Scaffold هم میشه .
میشه بیشتر راهنمایی کنید, تو پیاده سازیش مشکل دارم
لیست کشورها رو با Actionlink نمایش میدم اما وقتی روش کلیک میکنم شهرهای همه ی کشور ها نمایش داده میشه نه شهر های مربوطه
Moien Tajik
پنج شنبه 13 خرداد 1395, 21:32 عصر
در کنترلر لیست کشور ها بدست میاریم و ()ToList میکنیمشون و پاس میدیم به ویو
Controller :
CountriesContext db = new CountriesContext();
public ActionResult Index()
{
var countries = db.Countries.ToList();
return View(countries);
}
توی ویو با با foreach لیست کشورهارو با ActionLink چاپ میکنیم و Route Id اون رو برابر با آیدی اون کشور میزاریم :
@model List<Countries.Models.Country>
@{
foreach (var item in Model)
{
@Html.ActionLink(@item.CountryName, "Cities", new { id = item.CountryId }) <br/>
}
}
تا اینجا لیست کشورا با آیدیشون به صورت لینک بدست میاد ، با کلیک روی اسم هر کشور باید شهرهای مربوط به اون کشور نشون داده بشه پس در کنترلر :
public ActionResult Cities(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var cities = db.Cities.Where(city => city.CountryId == id).ToList();
return View(cities);
}
و در ویو شهر ها :
@model List<Countries.Models.City>
@{
foreach (var item in Model)
{
<span>@item.CityName</span><br/>
}
}
لینک دانلود : http://uplod.ir/k72923gt80xw/Countries.rar.htm (http://uplod.ir/k72923gt80xw/Countries.rar.htmتوی)
در این مثال تمام کشورها هستش اما فقط شهرهای کشورهای Iran , United States رو براتون قرار دادم چون seed کردن و relation همه ی شهرها و کشورها زیاد و زمان بره ...
farhad26
جمعه 14 خرداد 1395, 00:44 صبح
در کنترلر لیست کشور ها بدست میاریم و ()ToList میکنیمشون و پاس میدیم به ویو
Controller :
CountriesContext db = new CountriesContext();
public ActionResult Index()
{
var countries = db.Countries.ToList();
return View(countries);
}
توی ویو با با foreach لیست کشورهارو با ActionLink چاپ میکنیم و Route Id اون رو برابر با آیدی اون کشور میزاریم :
@model List<Countries.Models.Country>
@{
foreach (var item in Model)
{
@Html.ActionLink(@item.CountryName, "Cities", new { id = item.CountryId }) <br/>
}
}
تا اینجا لیست کشورا با آیدیشون به صورت لینک بدست میاد ، با کلیک روی اسم هر کشور باید شهرهای مربوط به اون کشور نشون داده بشه پس در کنترلر :
public ActionResult Cities(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var cities = db.Cities.Where(city => city.CountryId == id).ToList();
return View(cities);
}
و در ویو شهر ها :
@model List<Countries.Models.City>
@{
foreach (var item in Model)
{
<span>@item.CityName</span><br/>
}
}
لینک دانلود : http://uplod.ir/k72923gt80xw/Countries.rar.htm (http://uplod.ir/k72923gt80xw/Countries.rar.htmتوی)
در این مثال تمام کشورها هستش اما فقط شهرهای کشورهای Iran , United Stated رو براتون قرار دادم چون seed کردن و relation همه ی شهرها و کشورها زیاد و زمان بره ...
خیلی عالی بود
مرسی که وقت گذاشتین
یک هفته درگیر این کد بودم !
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.