2013-05-08 3 views
0

Я пытаюсь выполнить функцию javascript из класса C# в приложении asp.net. Я использую ScriptManager. У меня есть класс UpdateUI, который содержит следующий метод:Вызов ScriptManager из класса

public static void RunScript() 
{ 
    try 
    { 
     if (HttpContext.Current != null) 
     { 
      Page currentPage = HttpContext.Current.Handler as System.Web.UI.Page; 
      ScriptManager.RegisterClientScriptBlock(currentPage, currentPage.GetType(), "disableControls", "disableControls()", true); 
     } 
    } 
    catch (Exception ex) 
    { 
    } 
} 

Когда слово UpdateUI.RunScript() от другого статического класса, HttpContent.Current является null. Любая идея, как мне идти, чтобы иметь возможность запускать scriptmanager из класса, который не является кодом?

+0

От чего статический класс вызывает этот метод? Во время жизненного цикла страницы? В противном случае это «null» (например, с помощью веб-метода). –

+0

@TimSchmelter Насколько я знаю в WebMethod HttpContext.Current доступен. Я думаю, что я уже сделал это, чтобы получить данные сеанса в WebMethod. –

+0

@VitorCanova: Насколько я знаю, «HttpContext.Current.Handler» не является «страницей» в веб-методе, поэтому он «null». Однако это был просто пример. Он не упомянул, используется ли статический класс в течение жизненного цикла страницы. –

ответ

0

Передайте HttpContext методу в вашем статическом классе. Как указывает комментарий Тима Шмельтера, вызов HttpContext.Current завершится неудачно, если он не будет выполнен в ответ на входящий запрос.

public static void RunScript(HttpContext context); 

 Смежные вопросы

  • Нет связанных вопросов^_^