ASP.Net MVC3 C# запрос о просмотре данных, хранящихся в базе данных
У меня есть вопрос, касающийся MVC3 C# Tutorial.
При создании контроллера он автоматически создает для вас представления, и создается Index.cshtml (путь /Views/News/Index.cshtml). Этот код выглядит следующим образом:
@model IEnumerable<dale_harrison.Models.News>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
News_Entry
</th>
<th>
News_Date
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.News_Entry)
</td>
<td>
@Html.DisplayFor(modelItem => item.News_Date)
</td>
</tr>
}
</table>
Это работает нормально, однако я хотел бы отобразить содержимое @Html.DisplayFor(modelItem => item.News_Entry) и @Html.DisplayFor(modelItem => item.News_Date) на моей домашней странице, которая находится в другом представлении.
Я попытался скопировать код из Index.cshtml в новое представление (путь был /Views/Home/homepage.cshtml), но это не удается с ошибкой: "NullReferenceException не было обработано кодом пользователя" - извините, но я не знаете, что это значит?
Не возражает ли кто-нибудь объяснить, почему простое копирование кода для отображения данных из базы данных из одного представления в другое не работает? Извиняюсь за то, что был толстым, но я новичок без фона кодирования.
Я могу опубликовать код контроллера, если требуется.
Большое спасибо.
1 ответ
Может быть, вы пропустили передачу модели для просмотра при вызове. Вы можете сделать это следующим образом:
public ActionResult HomePage()
{
IEnumerable<dale_harrison.Models.News> model = new List<dale_harrison.Models.News>();
// prepare your model (populate it with proper data)
return View(model);
}