Когда я передаю Id со значением, я получаю ошибку Значение не может быть нулевым. (Параметр 'source') несмотря на то, что id имеет значение - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь получить количество объектов из таблицы БД. Если значение id равно null, то все продукты будут перечислены, и эта часть программы работает.

Но когда я пытаюсь подсчитать количество товаров по категориям, я получаю Id со значением, имеющим нулевое значение. Я не понимаю, что вызывает эту ошибку.

steps of workflow

CategoryListViewComponent Coes ниже

 public IViewComponentResult Invoke()
{
    return View(new CategoriesMenuModels()
    {
        Categories = _categoryService.GetAllCategories(),
        CurrentCategory = RouteData.Values["id"]?.ToString() 
    }) ;
}

Представление CategoryList cs html ниже

@model CategoriesMenuModels

<div class="list-group">
    @foreach (var cats in Model.Categories)
    {
        <a asp-controller="Shop" asp-action="List" asp-route-id="@cats.Id" class="list-group-item  list-group-item-action @(Convert.ToInt32(Model.CurrentCategoryId)== Convert.ToInt32(cats.Id) ? "active": "")">
            @cats.Name
            </a>
    }
</div>
<div> Category Id : @Model.CurrentCategoryId </div>

и снимок экрана, когда система показывает текущую ошибку.

error screen shot

Это мои CategoriesMenuModels.cs

public class CategoriesMenuModels
    {
        public List<Category>  Categories { get; set; }
        public int  CurrentCategoryId { get; set; }
    }

Я не смог найти выход ... можете ли вы мне помочь пожалуйста?

...