Как сохранить переменную на обратной передаче

Попробуйте это

        let filterOpacity = OpacityAdjustment()
        filterOpacity.opacity = 1

        let filterImage = PictureInput.init(image: UIImage.init(named: "Elevate.png")!)

        let filterMultiplyBlend = MultiplyBlend()

        imageOutput = sourceImage!.filterWithPipeline{input, output in
            input --> filterOpacity --> filterMultiplyBlend --> output
        }
23
задан Brian Boatright 21 October 2008 в 20:19
поделиться

7 ответов

Как другие указали, можно сохранить его на Сессии или ViewState. Если это - конкретная страница, мне нравится хранить его в ViewState в противоположность Сессии, но я не знаю, предпочитается ли один метод обычно по другому.

В VB, Вы сохранили бы объект в ViewState как:

ViewState(key) = value

И получают его как:

value = ViewState(key)
43
ответ дан 29 November 2019 в 01:08
поделиться

Хранилище в:

  • Сессия
  • ViewState
  • Скрытый вход
5
ответ дан 29 November 2019 в 01:08
поделиться

Только для суммирования, что сказано выше.

можно использовать Сессию, Состояние отображения или скрытое поле.

я лично предпочитаю состояние отображения, поскольку оно будет работать в средах веб-фермы, Сессия не делает, оно не хранит его на сервере, ожидающем пользователя, в течение максимум 20 минут, которые будут удалены, и в общем состоянии отображения, место, чтобы быть для данных уровня страницы.

можно использовать скрытое поле, но тогда пользователь мог более легко изменить его.

5
ответ дан 29 November 2019 в 01:08
поделиться

Сохраните его на Сессии.

Page.Session["MyPage_FileID"] = intFileID

у Вас должна будет быть логика, которая управляет им, поскольку пользователь перешел вокруг, но если это всегда устанавливается, когда страница загружается от ТОГО, ЧТОБЫ ПОЛУЧАТЬ (или Вы очищаете его, если не доступный на ДОБИРАЮТСЯ), тогда, необходимо быть в порядке с помощью него позже от Сессии на Вашем отправлять PostBack.

4
ответ дан 29 November 2019 в 01:08
поделиться

Помните:

Каждый раз Ваши выполнения серверного кода, это находится в совершенно новом экземпляре Вашего класса страницы. Это для каждой обратной передачи.

2
ответ дан 29 November 2019 в 01:08
поделиться

На самом деле начиная со страницы ASP.NET обратные передачи к себе - включая строку запроса - Вы могли просто удалить If Not Page.IsPostBack условие. Тогда это принялось на каждой обратной передаче.

1
ответ дан 29 November 2019 в 01:08
поделиться

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

Private intFileId As Integer = 0

Public Property FileID() As Integer
    Get
        Return intFileId
    End Get
    Set(ByVal value As Integer)
        intFileId = value
    End Set
End Property


Protected Overrides Function SaveControlState() As Object
    Dim objState(2) As Object
    objState(0) = MyBase.SaveControlState()
    objState(1) = Me.FileID
    Return objState
End Function


Protected Overrides Sub LoadControlState(ByVal savedState As Object)
    Dim objState() As Object
    objState = savedState
    MyBase.LoadControlState(objState(0))
    Me.FileID = CInt(objState(1))
End Sub




Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
    Me.Page.RegisterRequiresControlState(Me)
End Sub


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Not Page.IsPostBack Then
        If Not String.IsNullOrEmpty(Request.QueryString("fileid")) Then
            Me.FileID = CInt(Request.QueryString("fileid"))
        End If
    End If

    Response.Write(Me.FileID.ToString())
End Sub
1
ответ дан 29 November 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: