ASP.NET MVC 4输出模型数据以查看

问题描述:

我当前的项目涉及为事件创建日记条目。我试图将关于事件的信息放入视图中,但是我没有取得任何成功。我如何获得名称和日期属性到视图中? (目前在视图中这些字段没有显示)。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

你可以在返回View()上做一个断点来查看threr是否被赋值到字段中?你可以仔细检查一下你给视图的模型是否与你引用视图第一行的模型相同? – clement 2014-12-03 16:20:07

+1

'db.Journals.Find'是否在返回的'Journal'实例中创建了一个'Event'实例(并填充它)? – HABO 2014-12-03 16:21:56

+0

@clement是的,这是在视图中引用的正确模型。 – 2014-12-03 16:25:55

你可能有让你的模型的视图模型,你将显示在查看的内容。

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中包含(“Event”) – jackdevries 2014-12-03 16:29:57