PDA

View Full Version : سوال: نمایش تعداد کامنت های هر پست



dastyar69
پنج شنبه 24 اسفند 1396, 13:50 عصر
سلام دوستان
من یه مشکل تو نمایش تعداد کامنت های هر پست دارم، من از دستور زیر برای نمایش تعداد کامنت هر پست استفاده می کنم اما برنامه هیچ مقداری برنمی گرداند و خطای Value cannot be null را برمی گرداند.
(@Model.ProductComment.Count(c => c.ProductID == item.ID).ToString())

مدل من یک View Model می باشد که شامل لیستی از کالا ها و لیستی از کامنت ها می باشد که در View با یک حلقه هر کالا را نمایش داده و می خوام تعداد کامنت های هر پست را نیز توسط این دستور بگیرم که با خطای فوق روبه رو می شوم.


میشه توستان لطف کنن و راهنمایی کنند.

ممنون

EnKamran
پنج شنبه 24 اسفند 1396, 21:46 عصر
بخاطر اینه كه بعضی از محصولات كامنت ندارن و كانت هیچی رو نمیتونه بدست بیاره.
شما یه ایف هم اضافه كن كه اگر كامنتز! = نال بود كانت رو نشون بده درغیر اینصورت دستی بنویسه صفر
If(Model.ProductsComment! = null)
{@Model.ProductComments.Count();}

dastyar69
جمعه 25 اسفند 1396, 14:07 عصر
ممنون مهندس، ولی دستور Count همیشه یک مقدار بر می گرداند که یا یک عدد صحیح مثبت یا 0 می باشد. (اگر هم دستور Null بهش داده بشه همون 0 را برمی گرداند، اینو در چند جای دیگر استفاده کردم) ولی در اینجا حتی با شرط فوق باز همون خطا را می دهد و تعداد را برنمی گرداند.

EnKamran
جمعه 25 اسفند 1396, 21:40 عصر
بله قبلا اینجوری بود ولی وقتی با دات نت كور كار كردم این مشكل رو داشتم.
یك مورد دیگه اینكه آیا تو واكشی productComments رو اینكلود میكنید؟
var post = db.posts.Include("ProductComments").FirstOrDefault(p=>p.Id=postid)

dastyar69
دوشنبه 28 اسفند 1396, 23:26 عصر
مشکل حل شد.

ممنون

EnKamran
سه شنبه 29 اسفند 1396, 12:26 عصر
مشکل حل شد.

ممنون
مشکل چی بود دوست عزیز؟

dastyar69
شنبه 04 فروردین 1397, 23:31 عصر
سهل انگاری خودم. من یک ViewModel ساخته بودم و به View پاس دادم تو این ViewModel باید مقادیر تعریف شده را مقدار دهی می کردم که مقدار تعداد کامنت ها رو خارج از ViewModel مقدار دهی کرده بودم. و در View نمی شناخت.

public class HomeIndexViewModel
{
...

public IEnumerable<Comment> ProductComment { get; set; }

public int CurrentPage { get; set; }

}

HomeIndexViewModel model = new HomeIndexViewModel
{
...
ProductComment = BlComment.Select(),

};

in View:
(@Model.ProductComments.Count().ToString())