«Объект» не содержит определения «Десять» - PullRequest
0 голосов
/ 27 августа 2018

Рассмотрим следующий код:

Контроллер:

 public ActionResult ShowMenu ()
        {
            if(Session["ID"] != null && Session["Ten"] != null && Session["User"] != null)
            {
                int id = (int)Session["ID"];
                ViewBag.user=  db.ChucNangs.Join(db.Chuc_Nang_Quan_Tris, x => x.ID, y => y.MaChucNang, (x, y) => new {Ten = x.Ten, DuongDan = x.DuongDan,Icon= x.Icon, TrangThai = x.TrangThai }).Where(x=>x.TrangThai == true).ToList();
                return PartialView("_menu_right");
            }
            return RedirectToAction("Logout");
        }

enter image description here

У меня есть объект типа Anonymous, и, хотя есть данные, он все равно отображает ошибку.

Как я могу предотвратить эту ошибку?

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Вы не можете сделать это. Просто упростите свою жизнь и создайте класс модели представления со всеми необходимыми свойствами. Проверьте это:

Заполнение анонимного типа в ViewBag, вызывающее проблемы с подшивкой модели

0 голосов
/ 27 августа 2018

Вы не можете использовать анонимный тип для передачи данных из метода действия для просмотра через ViewBag.

Создайте класс модели представления для представления этих данных, которые вы хотите передать.

public class YourVm
{
    public string Ten { set; get; }
    public string DuongDan { set; get; }
    public string Icon { set; get; }
    public string TrangThai { set; get; }
}

и в выражении LINQ выполните проекцию, используя эту модель представления вместо анонимного типа.

 new YourVm {  Ten = x.Ten, 
               DuongDan = x.DuongDan,
               Icon= x.Icon, 
               TrangThai = x.TrangThai })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...