View Full Version : نحوه پاس دادن چند نتیجه از کنترلر به view
jaykob
دوشنبه 29 اردیبهشت 1393, 09:13 صبح
سلام
من یک سیستم کوچک وبلاگ دارم که خوب در صفحه اصلی من سه چیز از دیتابیس خوانده می شود برای نمایش در view که شامل پست های وبلاگ ، نام نویسنده ها و دسته بندی موضوعات است . سوال من اینه که من چطور نتیجه این پرس و جو هارو به view پاس بدم آیا با viewbag باید این کارو بکنم ؟ بهینه ترین راهکار چی هست و اگر لطف کنید یک مثال بزنید از کد کنترلر و نحوه نمایش در view ...
ممنون
Mansoor92
دوشنبه 29 اردیبهشت 1393, 09:26 صبح
سلام
با استفاده از ViewModel این کار رو انجام بدید
jaykob
دوشنبه 29 اردیبهشت 1393, 09:28 صبح
سلام
با استفاده از ViewModel این کار رو انجام بدید
ممنون امکان داره یک مثال کوچک بزنید که به طور مثال پست های یک بلاگ شامل موضوع و متن در view نمایش داده بشه ؟
Mansoor92
دوشنبه 29 اردیبهشت 1393, 09:32 صبح
موضوع ومتن هر کدومش یک جدول جداگانه هستند؟یعنی برای هرکدوم یک مدل تعریف کردید؟
jaykob
دوشنبه 29 اردیبهشت 1393, 09:34 صبح
موضوع ومتن هر کدومش یک جدول جداگانه هستند؟یعنی برای هرکدوم یک مدل تعریف کردید؟
نه من یک مدل دارم به نام BlogContent که نام مطلب و موضوع داخلش هست و یک مدل دارم به نام BlogWriter که نام نویسنده های بلاگ هست حالا می خواهم هر کدام از محتوا های این دو جدول را در دو کار مجزا در یک View نشان بدم ...
ممنون
Mansoor92
دوشنبه 29 اردیبهشت 1393, 09:43 صبح
اگر میخواید که توی صفحه وبلاگ چندین موضوع از دیتابیس نشون داده بشه مثلا ده آخر وبلاگ و هم چنین نام نویسنده هاش یک کلاس تعریف میکنید مثلا به این نام BlogContentAndWirter
و در داخل اون مینویسید
public class BlogContentAndWirter
{
public IEnumerable<BlogContent> Content { get; set; }
public IEnumerable<BlogWriter> Writer { get; set; }
}
حالا شما توی ویوو به جای فراخوانی مدل این ویوومدل رو فراخوانی میکنید و به موضوعات داخلش دسترسی دارید.
IEnumerable هم برای نمایش لیستی از موضوعات استفاده میشه
امیدوارم که تونسته باشم منظورم رو برسونم.
jaykob
دوشنبه 29 اردیبهشت 1393, 09:47 صبح
خیلی ممنون
این مثالتون رو متوجه شدم . اما آیا امکان این نیست مثلا من در یک اکشن چند تا کوئری بزنم و اونهارو جدا جدا به view پاس بدم و نشون بدم ؟
Mansoor92
دوشنبه 29 اردیبهشت 1393, 09:52 صبح
خب شما توی اکشن بر اساس همین ویو مدل و موضوعات داخلش کوئری رو میزنید و به ویوو پاس میدید مثلا به این شکل
مثلا میخوام موضوعات و تعدادش رو بصورت جداگانه به ویوو پاس بدم توی اکشن از مدل نمونه سازی کردم و بدین شکل اونو پاس دادم
var md = new PagingAndLogin();
md.Contents = db.Contents.OrderByDescending(c => c.ContentId).ToPagedList(pagenumber, pagesize);
md.ContentCount = db.Contents.Take(3).OrderBy(c=>c.Count).ToList();
return View(md);
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.