I needed a dropdownlist of categories as well as the grid shown in nopCommerce by default. Here is my current solution.

It needs a "Please Select" option at the top of the DD list so all categories can be selected (to fire onchange event). Anyone know how to do this?

Darren Pegram


var subs = Model.SubCategories.Select(x => new SelectListItem
        {Text = x.Name, Value = x.Id.ToString()});        
              
        @Html.DropDownList("Category",subs, new { onChange = "onCategoryChanged();" })
                
        <script type="text/javascript">
            function onCategoryChanged() {
                var selectedCategory = document.getElementById('Category');
                var selectedCategoryId = selectedCategory.options[selectedCategory.selectedIndex].value;
                var changeCategoryActionUrl = '@Url.Action("categoryplaceholder/", "c", new { categoryId = "categoryplaceholder" })';
                changeCategoryActionUrl = changeCategoryActionUrl.replace("categoryplaceholder", selectedCategoryId);
                setLocation(changeCategoryActionUrl);
            }
        </script>