Итак, у меня есть приложение MVC для управления списком сайтов, и в моих подробностях не видно, что ни один из моих подклассов в моей модели ничего не отображает, даже если @ Html.DisplayNameFor правильно отображает метку.
Вот код просмотра, который работает нормально:
<tr>
<td>
<span class="label label-info">@Html.DisplayNameFor(model => model.SiteName)</span>
</td>
<td style="text-align: center;">
@Html.DisplayFor(model => model.SiteName)
</td>
</tr>
Это код, который DisplayFor ничего не генерирует:
<tr>
<td>
<span class="label label-info">@Html.DisplayNameFor(model => model.Version.VersionName)</span>
</td>
<td style="text-align: center;">
@Html.DisplayFor(model => model.Version.VersionName)
</td>
</tr>
Вот моя модель сайта:
public class Site
{
public int ID { get; set; }
[Required]
[Display(Name = "Link")]
[DataType(DataType.Url)]
public string SiteLink { get; set; }
[Required]
[Display(Name = "Name")]
public string SiteName { get; set; }
public int VersionId { get; set; }
[ForeignKey("VersionId")]
public Version Version { get; set; }
}
И мой класс версии:
public class Version
{
public int ID { get; set; }
[Display(Name = "Version")]
public string VersionName { get; set; }
public List<Site> Sites { get; set; }
}
Наконец, вот мой метод Details ActionResult в моем контроллере:
public ActionResult Details(int id = 0)
{
Site site = db.Sites.Find(id);
if (site == null)
{
return HttpNotFound();
}
return View(site);
}
Все другие мои представления отображаются просто отлично, просто это подробное представление, похоже, ничего не возвращает для моих пользовательских классов.