요청 기간 동안 글로벌 변수를 설정하십시오
-
03-07-2019 - |
문제
단일 요청의 길이에 대해 일종의 글로벌 변수를 설정할 수 있으므로 페이지의 모든 컨트롤이 각각을 통과하지 않고도 응답 할 수 있습니까?
예를 들어 누군가 내 마스터 페이지에서 저장 버튼을 누르면 내 페이지의 각 usercontrol이 다음과 같은 페이지를 가질 수 있도록 무언가를 설정할 수 있습니다.
protected void Page_Load(object sender, EventArgs e)
{
if (isSaving) // isSaving is a global variable
{
saveData(); // save myself
}
loadData();
}
MasterPage Call의 대의원을 페이지의 저장 기능을하는 것보다 훨씬 쉬운 것 같습니다. 그런 다음 uc1.savedata ()를 각 USERControl로 호출하지만 더 나은 대상 지향적 사고라는 것을 알고 있습니다.
해결책
그래 넌 할수있어. 명백한 장소를보십시오 : HTTPContext 및 HttpContext.Current.Items
요청 처리 중에 항상 액세스 할 수있는 컬렉션 (참조 http://msdn.microsoft.com/en-us/library/system.web.httpcontext.items.aspx).
마찬가지로 힌트:
public static class RequestScopedData
{
private const string key = "key_that_you_choose";
public static bool IsSaving
{
get
{
object o = HttpContext.Current.Items[key];
return Convert.ToBoolean(o);
}
set
{
HttpContext.Current.Items[key] = value;
}
}
}
제휴하지 않습니다 StackOverflow