ورود

View Full Version : نحوه پر کردن یک DropDown



shaki_phd
یک شنبه 22 دی 1392, 07:50 صبح
با سلام
من یک مدل دارم به شکل زیر



public class News
{
[Key]
[Display(Name = "ردیف")]
public int NewsId { get; set; }
[Display(Name = "عنوان")]
public string Title { get; set; }
[Display(Name = "خلاصه")]
public string Summary { get; set; }
public int CategoryId { get; set; }
[Display(Name = "دسته بندی خبر")]
public Category Category { get; set; }
[Display(Name = "شرح")]
public string Description { get; set; }
[Display(Name = "وضعیت")]
public Status Status { get; set; }
[Display(Name = "تاریخ ایجاد")]
public DateTime CreationDate { get; set; }
[Display(Name = "تاریخ انتشار")]
public DateTime PublishDate { get; set; }
[Display(Name = "تاریخ انقضا")]
public DateTime ExpireDate { get; set; }
[Display(Name = "آیکن")]
public String IconPath { get; set; }
[Display(Name = "وضعیت انتشار")]
public NewsStatus NewsStatus { get; set; }
}



که Category دسته بندی خبر را مشخص می کند من تو کنترلر برنامه تو متد Create یک DropDownList دارم که اینو باید با همه دسته بندی ها پر کنم اما نمیدونم چه جوری پرش کنم تو View . چون تو View مدلم از جنس News هستش و نمیدونم چگونه لیستی از Category برای پرکردن DropDown بهش پاس بدم

sunn789
یک شنبه 22 دی 1392, 16:39 عصر
یه نگاه تو همین صفحه اول و یا دوم بیندازید بود ، شما تو مدل تون میتونید تغییر بدین و زمانی که به صورت اتوماتیک Create رو ایجاد میکنید خودش برای شما لیست باز شو رو ایجاد و پر میکند.

Cybersilent
سه شنبه 24 دی 1392, 08:38 صبح
یک راه، سفارشی سازی binder پیش فرض MVC هست.

اطلاعات بیشتر:
http://www.dotnettips.info/post/1559/%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C-%D8%B3%D8%A7%D8%B2%DB%8C-binding-%DB%8C%DA%A9-%D8%AE%D8%B5%D9%88%D8%B5%DB%8C%D8%AA-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-attributes

sunn789
سه شنبه 24 دی 1392, 21:28 عصر
صحبت شما متین ، در خصوص استفاده از Binder اما خیلی ساده میشه توی مدل پیاده سازی کرد که راحت و بدون هیچ کد اضافی و بدون دردسر خود ام وی سی یست باز شو رو درست کنه

bahar0011
شنبه 28 دی 1392, 10:39 صبح
سلام
با استفاده از ViewBag می تونید این کار رو به راحتی انجام بدید
در controller

ViewBag.Categoris= new SelectList(_CategoryRepository.GetAll(), "Id", "Name");

در View
@Html.DropDownListFor(model => model.CategoryID, (SelectList)ViewBag.Categoris, "--")

sunn789
یک شنبه 29 دی 1392, 21:28 عصر
ببینید اگه من بر استفاده از خود مدل اصرار دارم اینه که اکه به سورس خود ام وی سی نگاه کنید میبینید که در زمانی میخواد با استفاده از مدل برای شما وییو و کنترل ایجاد کنه توصیه به استفاده از مدل است اما در مورد وییو عموماً استفاده از ViewBag و ... که به صورت دینامیک با دیتا کار میکنه باعث حدر رفتن سیستم میشه به این معنی که بار اضافه ایجاد میکنه.
ببخشید یه کم بد بود