Как мне передать список через свойство PreviousPage?

#vb.net #visual-studio-2008 #asp.net-3.5

#vb.net #visual-studio-2008 #asp.net-3.5

Вопрос:

Я пытаюсь передать некоторые значения на другую страницу, и у меня есть значения в списке (строки). Однако я получаю сообщение об ошибке (во время разработки в IDE): в System.Web.UI.Page нет элемента «X». Я смог получить свойство через Intellisense. Поэтому я не уверен, почему я получаю ошибку.

Вот код:

 'Source Page (Default.aspx)-

Private locationDetails As List(Of String)
    Public ReadOnly Property LocationsForDetail() As List(Of String)
        Get
            Return locationDetails
        End Get
    End Property

    Private loadDetails As List(Of String)
    Public ReadOnly Property LoadsForDetail() As List(Of String)
        Get
            Return loadDetails
        End Get
    End Property

    Private optionDetails As List(Of String)
    Public ReadOnly Property OptionsForDetail() As List(Of String)
        Get
            Return optionDetails
        End Get
    End Property

    Protected Sub RadButton2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadButton2.Click

        For Each facility As ListItem In CheckBoxList1.Items
            If facility.Selected Then
                locationDetails.Add(facility.Text)
            End If
        Next

        For Each load As ListItem In CheckBoxList2.Items
            If load.Selected Then
                loadDetails.Add(load.Text)
            End If
        Next

        optionDetails.Add(DropDownList2.SelectedValue)
        optionDetails.Add(DropDownList3.SelectedValue)
        optionDetails.Add(DropDownList4.SelectedValue)
        optionDetails.Add(RadDatePicker1.SelectedDate.Value.ToShortDateString)
        optionDetails.Add(RadDatePicker2.SelectedDate.Value.ToShortDateString)

        Server.Transfer("Breakdown.aspx")
    End Sub


'Target Page (Breakdown.aspx) -

    Protected Sub populateChart()

        Dim locations As List(Of String) = PreviousPage.LocationsForDetail 'get error here
        Dim capacities As List(Of String) = PreviousPage.LoadsForDetail    'get error here
        Dim rescOptions As List(Of String) = PreviousPage.OptionsForDetail 'get error here

        bindData.populateChart(RadChart1, locations, capacities, rescOptions)
    End Sub
  

Ответ №1:

Сервер.Передача не будет выполнять обратную отправку на страницу. Я считаю (однако прошло много времени с тех пор, как я использовал PreviousPage), что это работает только тогда, когда вы используете свойство PostBackUrl для элемента управления.

Ответ №2:

Похоже, что, хотя IDE пометила это как ошибку, код скомпилировался и работал нормально. Я не уверен, повезло ли мне, IDE глючит или это какое-то неопределенное поведение.