2014-12-03 3 views
0

내 현재 프로젝트에는 이벤트에 대한 업무 일지 항목이 포함됩니다. 나는 이벤트에 대한 정보를보기로 끌어들이려고 시도하고 있지만, 나는 어떤 성공도 이루지 못하고있다. 보기에 이름 및 날짜 속성을 가져올 수 있습니까? (현재보기에는이 필드에 대해 표시되는 것이 없습니다).ASP.NET MVC 4 볼 모델 데이터 출력

모델 :

public class Event 
{ 
    public int Id { get; set; } 
    public string name { get; set; } 
    public string location { get; set; } 
    public string date { get; set; } 
    public virtual ICollection<Artist> Artists { get; set; } 
} 

public class Journal 
{ 
    public int Id { get; set; } 
    public string JournalTitle { get; set; } 
    public Event JournalEvent { get; set; } 
    public string journalEntry { get; set; } 
    public int Rating { get; set; } 
    public UserProfile Patron { get; set; } 
    public virtual ICollection<Artist> ArtistsSeen { get; set; } 
} 

보기 :

@model EventJournal3.Models.Journal 

@{ 
ViewBag.Title = "Details"; 
} 
<div class="container"> 
    <h2> 
     @Html.DisplayFor(model => model.JournalTitle) 
    </h2> 
    <div class="row"> 
     <div class="col-xs-6"> 
      @Html.DisplayFor(model => model.journalEntry) 
     </div> 
     <div class="col-xs-6"> 
      @Html.DisplayFor(model => model.JournalEvent.name) 
      <br /> 
      @Html.DisplayFor(model => model.JournalEvent.date) 
      <br /> 
      @for (int i = 1; i <= Model.Rating; i++) 
      { 
       <img src="~/content/star.png" height="25" width="25" /> 
      } 
      <br /> 
      Artists I've Seen: <br /> 
      @foreach (var artist in Model.ArtistsSeen) 
      { 
       @artist.Name <br /> 
      } 
     </div> 
     <br />&nbsp; 
    </div> 

<div class="row"> 
    <div class="col-xs-offset-4"> 
     | @Html.ActionLink("Back to List", "Index") | 
    </div> 
</div> 
</div> 

컨트롤러 :

public ActionResult Details(int id = 0) 
    { 
     Journal journal = db.Journals.Find(id); 
     if (journal == null) 
     { 
      return HttpNotFound(); 
     } 
     return View(journal); 
    } 
+0

threr가 필드에 값을 가지는지 확인하기 위해 View()를 중단 점으로 만들 수 있습니까? 보기에 제공하는 모델이보기의 첫 번째 줄을 참조하는 모형과 동일한 지 다시 한 번 확인할 수 있습니까? – clement

+1

'db.Journals.Find'는 실제로 반환 된'Journal' 인스턴스에서'Event' 인스턴스를 실제로 생성하고 (그것을 채 웁니까?)? – HABO

+0

@clement 예,보기에서 참조 된 올바른 모델입니다. –

답변

0

당신은 아마 당신이보기에 표시됩니다 어떤 모델의 뷰 모델을해야한다.

public class JournalEventViewModel { 
    public int Id { get; set; } 
    public string JournalTitle { get; set; } 
    public Event JournalEvent { get; set; } 
    public string journalEntry { get; set; } 
    public int Rating { get; set; } 
    public UserProfile Patron { get; set; } 
    public string name { get; set; } 
    public string location { get; set; } 
    public string date { get; set; } 
} 

그리고이 내용은 시각과 교차하십시오. 그것은 객체처럼 행동 할 것이므로 객체의 데이터로 채우십시오. AutoMapper를 사용하거나 Viewmodel 자체를 매핑 할 수 있습니다.

+0

또는 그냥. 포함 ("이벤트") 귀하의 dbquery – jackdevries