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);
} 
Другие вопросы по тегам