Ответ 1
В вашем представлении вы пытаетесь получить доступ к свойству 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>
}