3

自从我涉足服务器端以来已经有很长时间了,但在我看来,嵌入在包含的代码文件中的脚本应该可以正常执行。由于某种原因,情况似乎并非如此。

(注意——下面显然是基于我调试尝试的简化实现。实际上,在实际项目中,我还有其他包含平面 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"); %>

生成的页面,当从服务器运行时,包含文件就好了......但脚本呈现为文本。

我这里哪里出错了??

非常感谢你的帮助。

4

2 回答 2

2

我认为您可能仍在以 asp-classic 的思维方式思考。

Asp.net WebForms 尝试使用更加面向对象的方法,该方法使用类、将关注点与背后的代码分离并使用母版页和占位符继承外观,而不是使用包含。此外,WebForms 在很大程度上被 ASP.NET MVC 所取代,这再次改变了范式。

However asp-classic style Server Side includes still work just fine in .aspx, with a few restrictions such as the inability to include up through a parent path, and you will also lose your intellisense in the included files.

To use SSI, use the <!--#include file="xxx.ext" --> directive.

So in your example:

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

Where test.aspx is simply:

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

But IMO is a bit like using a chainsaw to hammer nails. I would skip WebForms entirely and head straight into Asp.Net MVC.

于 2012-08-14T19:14:45.903 回答
0

什么都不会出错。

当 you 时WriteFile,文件的内容将被渲染。

ASP.NET 没有像经典 ASP 那样的服务器端功能。

您需要使用控件来动态构建页面,尽管您可能希望查看ASP.NET/MVC而不是 WebForms,因为它更接近于您使用经典 ASP 所做的事情。

于 2012-08-14T19:13:32.340 回答