Извлечение управляющего значения Html в других классах

#c# #asp.net

#c# #asp.net

Вопрос:

У меня есть такой элемент в Default.aspx :

 <asp:HiddenField ID="hfID" runat="server" />
 

И теперь мне нужно получить значение этого элемента в другом классе, например, следующим образом:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Sample001 {
    public class SlaveValue {
        public void RetrieveValue() {
        }
    }
}
 

Как я могу это сделать?

Редактировать:

Это немного сложно, я добавляю значение к элементу внутри скрипта jQuery, и когда запрос jQuery Ajax отправляется, мне нужно это значение в HttpHandler для правильного ответа.

Комментарии:

1. когда вы хотите сделать это в обратной передаче?

Ответ №1:

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

Вы могли бы сделать

  HttpContext.Current.Session["key"] = ...
 

Комментарии:

1. Это немного сложно, я добавляю значение к элементу внутри скрипта jQuery, и когда запрос jQuery Ajax отправляется, мне нужно это значение в HttpHandler для правильного ответа

Ответ №2:

Передайте ссылку на экземпляр вашей страницы в класс. Тогда вы должны иметь возможность получить доступ к значению как myPageReference.hfID.Value .

Комментарии:

1. Да, но он, вероятно, нуждается в этом, потому что ему нужно получить доступ к этому значению с другой страницы

2. @Icarus: может быть. С информацией, которую он предоставил, это почти невозможно определить (значение SlaveValue не выводится из страницы).

Ответ №3:

когда вы хотите это сделать? это в обратной передаче? затем вы можете передать страницу в этот конструктор класса, чтобы получить доступ к элементам управления страницей с помощью метода FindControl

Изменение страницы.FindControl(‘controlid’)

Комментарии:

1. Он мог бы просто передать значение, если бы это было так

2. хм, я на самом деле делаю в HttpHandler для обработки запроса jQuery Ajax

Ответ №4:

После прочтения @Saeid, говорящего «Я на самом деле делаю в HttpHandler для обработки запроса Ajax jQuery», вы можете просто передать скрытое поле в виде строки запроса (при условии, что это метод get) и получить к нему доступ в вашем обработчике, используя объект httpcontext, например, для context.Request.Параметры [«Скрытое значение»]. Надеюсь, это поможет.