PDA

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 همه ی شهرها و کشورها زیاد و زمان بره ...


خیلی عالی بود
مرسی که وقت گذاشتین
یک هفته درگیر این کد بودم !