[QuestionID] [Description] [User_id] 테이블이 있습니다.ASP.NET MVC 5 empty ApplicationUser
public int QuestionID { get; set; }
public string Description { get; set; }
public ApplicationUser user { get; set; }
사용자가 양식을 사용하여 질문을 보내고 모든 필드가 올바르게 저장되면 질문이 데이터베이스에 저장됩니다.
는 내가보기에 모든 질문에 내 QuestionController에서 목록을 보내 :
@foreach (var item in Model)
{
<tr>
<td class="td-title">
@Html.DisplayFor(modelItem => item.QuestionID)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
@Html.DisplayFor(modelItem => item.user.id)
</td>
</tr>
...
모두가 item.user.id 제외하고 작동 : 내보기에서
return View(db.Questions.ToList());
내가 그 목록을 사용하여 아무 값도 표시하지 않습니다 (데이터베이스에 채워짐). 왜이게 비어 있니? 사용자 정보를 표시하려면 어떻게해야합니까?
편집 :
내가 코드를 우선 사용하고 이것이 내가 데이터베이스에 입력하는 방법입니다 : "
[QuestionID] [Description] [user_Id]
1 blalbla.. 397d27d...
는 컨트롤러의 빈 ID는 전에인가 그것을보기로 보냅니 까? 뷰 모델을 사용하지 않는 이유는 무엇입니까? - '복잡한'객체의 직렬화 (경우에 따라 중첩/계층화 됨)가 MVC에서 잘 수행되지 않는 경우가 많습니다.보기로 전달하는 항목을 하나의 평면 ViewModel 객체로 단순화하십시오. 또는 같은 시도 ((ApplicationUser) item.user) .id –
목록에서 만들어진 동일한 컨트롤러에서 데이터베이스에서 하나의 질문 개체를 얻을 때 그것은 또한 비어 있지 않은 사용자가 데이터베이스를 제공합니다. 따라서 가장 좋은 방법은 View Model을 사용하고 Application User를 Question Model에서 제거하는 것입니다. – user3231419
은 먼저 db.Questions를 채우는 데 사용하는 코드를 보여줍니다. EntityFramework를 사용하고 있습니까? 그렇다면 ApplicationUser가 엔티티 인 경우 ApplicationUser에 질문 (외부 키 사용)에 대한 탐색 속성이 올바르게 설정되지 않았거나 정보 검색에 사용 된 쿼리가 올바르지 않거나 EF의 매핑이 올바르지 않습니다 올바른, datbase를 먼저 사용했다면 올바른 것이어야합니다. 코드를 처음 사용했다면 버그 일 수 있습니다. –