Ошибка DetailView: ссылка на объект не установлена ​​на экземпляр объекта - PullRequest
0 голосов
/ 21 февраля 2011

Я пытаюсь обновить информацию о пользователе и получить следующую ошибку:

Ссылка на объект не установлена ​​на экземпляр объекта.Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.NullReferenceException: для ссылки на объект не задан экземпляр объекта.

ИсточникОшибка:

Строка 20: конструктор без параметров Строка 21: Строка 22:
user.Email = DirectCast (e.NewValues ​​(0), Строка) Строка 23: user.Comment = DirectCast (e.NewValues(1), строка) Строка 24: user.IsApproved = CBool ​​(e.NewValues ​​(2))

.vb-код:

Protected Sub UserInfo_ItemUpdating(ByVal sender As Object, ByVal e As DetailsViewUpdateEventArgs)
        'Need to handle the update manually because MembershipUser does not have a
        'parameterless constructor  

        user.Email = DirectCast(e.NewValues(0), String)
        user.Comment = DirectCast(e.NewValues(1), String)
        user.IsApproved = CBool(e.NewValues(2))

        Try
            ' Update user info:
            Membership.UpdateUser(user)

            ' Update user roles:
            UpdateUserRoles()

            UserUpdateMessage.Text = "Update Successful."

            e.Cancel = True
            UserInfo.ChangeMode(DetailsViewMode.[ReadOnly])
        Catch ex As Exception
            UserUpdateMessage.Text = "Update Failed: " + ex.Message

            e.Cancel = True
            UserInfo.ChangeMode(DetailsViewMode.[ReadOnly])
        End Try
    End Sub

Ниже приведен.aspx-код для detailView:

 Protected Sub UserInfo_ItemUpdating(ByVal sender As Object, ByVal e As DetailsViewUpdateEventArgs)
        'Need to handle the update manually because MembershipUser does not have a
        'parameterless constructor  

        user.Email = DirectCast(e.NewValues(0), String)
        user.Comment = DirectCast(e.NewValues(1), String)
        user.IsApproved = CBool(e.NewValues(2))

        Try
            ' Update user info:
            Membership.UpdateUser(user)

            ' Update user roles:
            UpdateUserRoles()

            UserUpdateMessage.Text = "Update Successful."

            e.Cancel = True
            UserInfo.ChangeMode(DetailsViewMode.[ReadOnly])
        Catch ex As Exception
            UserUpdateMessage.Text = "Update Failed: " + ex.Message

            e.Cancel = True
            UserInfo.ChangeMode(DetailsViewMode.[ReadOnly])
        End Try
    End Sub

Любая идея, как я могу отсортировать это?

Любая помощь будет принята с благодарностью.

Спасибо

1 Ответ

0 голосов
/ 21 февраля 2011

Мое первое предположение, не видя больше кода, было бы, что ваша переменная user равна нулюВы установили его при рендеринге страницы?Я предполагаю, что ваш код выше является постбэком и поэтому user потерял свое значение.

...