Ошибка исключительной ссылки - PullRequest
2 голосов
/ 28 июля 2011

У меня есть модель данных Student (Entity Framework), в которой я установил "StudentID" и "StudentName" в качестве первичных ключей.StudentID имеет тип Int, а StudentName имеет тип String.

Я создал строго типизированное представление, но при запуске я получаю следующую ошибку:

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error: 


Line 10:         <tr>
Line 11:             <td>
Line 12:                 <%= Html.Encode(item.StudentID) %>**
Line 13:             </td>
Line 14:             <td>

Вот мое действие контроллера:

    public ActionResult Index()
    {

        ViewData.Model = student.StudentTable;
        return View();
    }

Вот представление:

    <%@ Page 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewPage<IEnumerable<Student.Models.StudentTable>>" %>

<html>
<head runat="server">
</head>
<body>
    <table>

    <% foreach (var item in Model) { %>

        <tr>
            <td>
                <%= Html.Encode(item.StudentID) %>
            </td>
            <td>
                <%= Html.Encode(item.StudentName) %>
            </td>
        </tr>

    <% } %>

    </table>
</body>
</html>

Ответы [ 4 ]

1 голос
/ 28 июля 2011

Я сомневаюсь, что элемент равен нулю, если бы он был нулем, вы бы не попали в цикл.Установите точку останова и изучите предмет, вероятно, это не то, что вы думаете.

1 голос
/ 28 июля 2011

Без какой-либо дополнительной информации, я предполагаю, что item равно null.Если в таблице учеников есть один идентификатор студента на запись, вам нужно просто передать model.StudentID

Controller

public ActionResult Index()
{    
    var model = student.StudentTable;
    return View(model);
}

aspx

<% foreach (var item in Model) { %>

    <tr>
        <td>
            <%= Html.Encode(item.StudentID) %>
        </td>
        <td>
            <%= Html.Encode(item.StudentName) %>
        </td>
    </tr>

<% } %>
0 голосов
/ 28 июля 2011

Может быть несколько вещей ...

Передаете ли вы действительные данные представления из ActionMethod? Вы определили @model для представления?

Если предположить, что student.StudentTable - это отдельный объект со свойством StudentID, тогда вам нужно изменить код представления на Model.StudentID

0 голосов
/ 28 июля 2011

Если это строка, для которой вы получаете исключение, тогда ваша переменная item должна быть нулевой. Вам нужно будет внимательно посмотреть, как это заполняется - если ваша модель пуста, тогда вы сможете запустить отладчик для действия вашего контроллера и выяснить, почему это не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...