#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.Параметры [«Скрытое значение»]. Надеюсь, это поможет.