نمایش تعداد کامنت های هر پست
سلام دوستان
من یه مشکل تو نمایش تعداد کامنت های هر پست دارم، من از دستور زیر برای نمایش تعداد کامنت هر پست استفاده می کنم اما برنامه هیچ مقداری برنمی گرداند و خطای Value cannot be null را برمی گرداند.(@Model.ProductComment.Count(c => c.ProductID == item.ID).ToString())
مدل من یک View Model می باشد که شامل لیستی از کالا ها و لیستی از کامنت ها می باشد که در View با یک حلقه هر کالا را نمایش داده و می خوام تعداد کامنت های هر پست را نیز توسط این دستور بگیرم که با خطای فوق روبه رو می شوم.
میشه توستان لطف کنن و راهنمایی کنند.
ممنون
نقل قول: نمایش تعداد کامنت های هر پست
بخاطر اینه كه بعضی از محصولات كامنت ندارن و كانت هیچی رو نمیتونه بدست بیاره.
شما یه ایف هم اضافه كن كه اگر كامنتز! = نال بود كانت رو نشون بده درغیر اینصورت دستی بنویسه صفر
If(Model.ProductsComment! = null)
{@Model.ProductComments.Count();}
نقل قول: نمایش تعداد کامنت های هر پست
ممنون مهندس، ولی دستور Count همیشه یک مقدار بر می گرداند که یا یک عدد صحیح مثبت یا 0 می باشد. (اگر هم دستور Null بهش داده بشه همون 0 را برمی گرداند، اینو در چند جای دیگر استفاده کردم) ولی در اینجا حتی با شرط فوق باز همون خطا را می دهد و تعداد را برنمی گرداند.
نقل قول: نمایش تعداد کامنت های هر پست
بله قبلا اینجوری بود ولی وقتی با دات نت كور كار كردم این مشكل رو داشتم.
یك مورد دیگه اینكه آیا تو واكشی productComments رو اینكلود میكنید؟
var post = db.posts.Include("ProductComments").FirstOrDefault (p=>p.Id=postid)
نقل قول: نمایش تعداد کامنت های هر پست
نقل قول: نمایش تعداد کامنت های هر پست
نقل قول:
نوشته شده توسط
dastyar69
مشکل حل شد.
ممنون
مشکل چی بود دوست عزیز؟
نقل قول: نمایش تعداد کامنت های هر پست
سهل انگاری خودم. من یک 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())