Get comparison list count in headerlinks.cshtml

2 年 前
Hi, I am using NopCommerce version 3.90.

I have added an <li> item to the headerlinks.cshtml file for the comparison list. i would like to include the number of items in the comparison list next to the text. e.g. "Comparison List (12)".

Has anyone figured out a way to do this?

Thanks
2 年 前
The following is a way of doing it.

@{
    var count = EngineContext.Current.Resolve<ICompareProductsService>.GetComparedProducts().Count;
}

<li>
<a href="@Url.RouteUrl("CompareProducts")"> Comparison List (@count) </a>
</li>

2 年 前
RoastedBytes wrote:
The following is a way of doing it.

@{
    var count = EngineContext.Current.Resolve<ICompareProductsService>.GetComparedProducts().Count;
}

<li>
<a href="@Url.RouteUrl("CompareProducts")"> Comparison List (@count) </a>
</li>



Hi RoastedBytes,

is this for version 3.90?

This doesn't work for me, it throws an error when i run it.

Thanks
2 年 前
What error are you getting?
2 年 前
This is the error that i get:
Compiler Error Message: CS0103: The name 'EngineContext' does not exist in the current context

thanks
2 年 前
Add the following lines at the top of the page

@using Nop.Core.Infrastructure
@using Nop.Services.Catalog
2 年 前
Hi,
Thanks for that, i still have an error.

In visual studio it says 'IEngine.Resolve<T>()' is a method, which is not valid in the given context
2 年 前
That's weird. Can you share the entire view file?
2 年 前
Sorry, but forgot to put brackets there

@{
    var count = EngineContext.Current.Resolve<ICompareProductsService>().GetComparedProducts().Count;
}


This should work.

Regards,
Anshul
4 周 前
This code works for me, But count refreshing only after reload page, while adding product to compare list from products home page