Как вывести список моделей на основе идентификатора? - PullRequest
0 голосов
/ 05 марта 2019

Я не могу заставить свой контроллер перечислить модель подрядчика на основе идентификатора пользователя.Мне нужно отобразить подрядчиков, которые сделал пользователь.

Может ли кто-нибудь сказать, что мне не хватает, чтобы правильно перечислить его?

Я получаю сообщение об ошибке в строке

  Return View(Contractors)

Сказать, что его не существует в текущем контексте, поэтому я понятия не имею, как передать модель в представление.

То, что у меня пока есть:

// GET: Admin/Shop/Products
public ActionResult MyContractors(int? catId)
{
        using (Db db = new Db())
        {
            UserDTO user = db.Users.Where(x => x.Username == User.Identity.Name).FirstOrDefault();
            int userId = user.UserId;

            // Declare a list of ProductVM
            List<ContractorVM> Contractors = db.Contractors.Where(x => x.UserId == userId).ToArray().Select(x => new ContractorVM(x)).ToList();

            // Populate categories select list
            ViewBag.ContractorCategories = new SelectList(db.ContractorCategories.ToList(), "ContractorCategoryId", "ContractorCategoryName");

            // Set selected category
            ViewBag.SelectedCat = catId.ToString();
        }

        // Return view with list
        return View(Contractors);
}

1 Ответ

1 голос
/ 05 марта 2019

Вы создали Contractors внутри using (Db db = new Db()).Ничто вне этого не знает, что это существует, поэтому оно говорит, что это не в текущем контексте.

Объявите за пределами этого, например:

List<ContractorVM> Contractors = new List<ContractorVM>()

, а затем внутри присвойте ему значение, например:

Contractors = db.Contractors.Where(x => x.UserId == userId).ToArray().Select(x => new ContractorVM(x)).ToList();

, и оно должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...