Вы неправильно поняли синтаксис.
это должно быть:
@foreach(var x in ViewBag.data2){
@x.Count
@x.Title
}
Редактировать: Поскольку, кажется, есть небольшая путаница с типами dynamic
.В этом примере показано, как использовать определенную модель ..
Создайте класс для ваших данных вместо использования анонимного объекта.
public class PostsModel
{
public string Title { get; set; }
public int Count { get; set; }
// etc...
}
Измените запрос ...
var data = from c in _context.Posts
join p in _context.PostViewCount on c.Id equals p.PostId
select new PostsModel
{
Count = p.Count,
Title = c.Title,
// etc...
};
var dat = data.OrderByDescending(x=>x.Count).ToList();
ViewBag.data2 = dat;
Затем просто приведите вашу переменную Viewbag
к нужному типу ...
@foreach(PostsModel x in ((IEnumerable<PostsModel>)ViewBag.data2)){
@x.Count
@x.Title
}
Возможно, вам придется импортировать правильное пространство имен для вашего представления, используя: @using <namespace>