По вашему мнению, вы пытаетесь получить доступ к свойству pd
, но такого свойства не существует. Свойство называется ProjectData
.
При этом я настоятельно рекомендую вам использовать модели представлений и строго типизированные представления вместо ViewBag
. Таким образом, вы также получите Intellisense на ваш взгляд, который помог бы вам выбрать правильные имена.
Таким образом, вы можете начать с определения модели представления, которая будет содержать всю информацию, которая понадобится вашему представлению:
public class MyViewModel
{
public ProjectData ProjectData { get; set; }
public Project Project { get; set; }
}
и затем внутри действия вашего контроллера заполните эту модель представления и перейдите к представлению:
public ActionResult Index()
{
var viewModel =
from pd in db.ProjectsData
join p in db.Projects on pd.ProjectId equals p.ID
where pd.UserName == this.HttpContext.User.Identity.Name
orderby p.Name, p.ProjectNo
select new MyViewModel { ProjectData = pd, Project = p };
return View(viewModel);
}
и, наконец, внутри вашего строго типизированного представления используйте модель представления:
@model IEnumerable<AppName.Models.MyViewModel>
@foreach (var item in Model)
{
<div>@item.ProjectData.UserName</div>
}