2012-08-14 5 views
3

Прошло много времени с тех пор, как я пропустил серверную часть, но мне кажется, что скрипты, встроенные в включенный файл кода, должны выполняться как обычно. По некоторым причинам это не так.Код ASP.net внутри не выполняет

(Примечание. Это, по-видимому, упрощенная реализация, основанная на моих попытках отладки. В действительности у меня есть другие варианты с плоскими HTML и JavaScript в реальном проекте, которые отображают просто отлично. Это всего лишь код ASP, который не анализируется должным образом, <%%> теги и все.)

ИНДЕКС КОД

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>My Site</title> 
</head> 

<body> 

    <% Response.WriteFile ("includes/test.aspx") %> 

</body> 
</html> 

ВКЛЮЧЕНО КОД

<% response.write("boo"); %> 

Результирующая страница при запуске с сервера включает в себя файл просто отлично ... но сценарий визуализируется как текст.

Где я здесь не так?

Большое спасибо за помощь.

+0

Обратите внимание, что серверная сторона, безусловно, возможна, хотя и довольно неуклюжий, в asp.net. Я уточнил свой ответ. – StuartLC

ответ

0

Ничего не происходит.

Когда вы WriteFile, содержимое файла будет визуализировано.

У ASP.NET нет возможности для параллельной работы, включая классический ASP.

Вам нужно использовать элементы управления для динамического создания страницы, хотя вы можете посмотреть на ASP.NET/MVC вместо WebForms, так как это ближе к тому, как вы делали вещи с классическим ASP.

+0

Я слышал, что User Controls - лучший способ пойти.Однако, учитывая временный кризис, моя способность изучать новую парадигму затруднена ... Я надеялся, что я просто делаю что-то более общее неправильно. – sdowswell

+0

@sdowswell - WebForms - абстракция _very_. Меня сильно смутило, когда я перешел с классического ASP. Они были созданы для того, чтобы помочь разработчикам VB6 почувствовать, что они программируют приложение с состояниями с событиями и т. Д. ... Вам может быть проще, если вы некоторое время используете WinForms. – Oded

+0

Я никогда не был одним из временных шагов ... Думаю, у меня есть домашнее задание. Благодарим за руководство! – sdowswell

2

Я думаю, вы все еще можете думать в asp-classic mindset.

Asp.net WebForms пытается использовать более объектно-ориентированный подход, который использует классы, разделение проблем с кодом позади и наследует внешний вид, используя мастер-страницы и держатели мест, а не делает. Кроме того, WebForms в значительной степени превосходит ASP.NET MVC, который снова изменяет парадигму.

Однако в стороне от Asp-classic стиль Server Side по-прежнему работает как раз в .aspx, с некоторыми ограничениями, такими как невозможность включения в родительский путь, а также потерять intellisense во включенных файлах.

Для использования SSI, используйте <!--#include file="xxx.ext" --> directive.

Таким образом, в вашем примере:

<body> 
    <!--#include file="includes/test.aspx" --> 
</body> 

Где test.aspx просто:

<% int someInt = 123; 
Response.Write(someInt); 
%> 

Но ИМО это немного похоже на использование бензопилы забивать гвозди. Я бы полностью пропустил WebForms и направился прямо в Asp.Net MVC.

+1

Удивленный этот удар бензопилой не был принят. Маршрут 'include' * - это * как вы играли OO в Classic ASP-land [и теперь, когда я издеваюсь над страницей MVC из MVC - никому не рассказываю;)]. Благодарю. – ruffin