2013-05-02 6 views
3

Я работаю над веб-приложением ASP.NET.
У меня есть два файла -> example.aspx и его код за example.aspx.csInline C# code vs Page_Load метод

Я задаюсь вопросом, в чем разница между положить встроенный C# код в верхней части example.aspx

<%  
    if (Session["Page"] != null) 
    {  
     //method that maps session vars to form elements 
     loadSessionData(); 
    }   
%> 

и ввод кода в методе Page_Load() кода позади файла example.aspx.cs

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Session["Page"] != null) 
    {  
     //method that maps session vars to form elements 
     loadSessionData(); 
    } 
} 

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

Любая помощь в этом была бы принята с благодарностью.

Обновление: Я выяснил, почему в зависимости от того, где я поместил код, поведение приложения по-разному. Если я поставлю вызов inline C# в верхней части .aspx, он не будет выполняться при обратных передачах. Если я положу вызов метода C# в методе Page_Load() кода .aspx.cs за файлом, он запускается на обратной стороне. Так что, если я хочу поставить метод в методе Page_Load, но не запускать его на постбэков мне нужно будет обернуть его в:

if (!IsPostBack) 
{ 
    loadSessionData(); 
} 
+1

'<%...%>' работает как страница рендеринга .... – Aristos

ответ

3

Я думаю, что самая большая разница будет в тот момент, когда код выполняется. Page_Load возникает перед Page_Render, когда выполняется (я думаю) встроенный код.