我已经很长时间没有涉足服务器端了,但在我看来,嵌入在包含的代码文件中的脚本应该正常执行。由于某种原因,情况似乎并非如此。
(注意——下面显然是一个基于我的调试尝试的简化实现。实际上,我在实际项目中还得到了其他包含平面 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"); %>
从服务器运行时生成的页面包含该文件就很好......但脚本呈现为文本。
我这里哪里出错了??
非常感谢你的帮助。
我认为您可能仍然以 ASP 经典思维方式进行思考。
Asp.net WebForms 尝试使用更面向对象的方法,该方法使用类、与隐藏代码的关注点分离,并使用母版页和占位符继承外观,而不是包含。此外,WebForms 在很大程度上被 ASP.NET MVC 取代,这再次改变了范式。
然而,asp 经典风格的服务器端包含在 .aspx 中仍然可以正常工作,但有一些限制,例如无法通过父路径包含,并且您还将在包含的文件中丢失智能感知。
要使用 SSI,请使用<!--#include file="xxx.ext" -->指示。 http://msdn.microsoft.com/en-us/library/3207d0e3%28v=vs.80%29.aspx
所以在你的例子中:
<body>
<!--#include file="includes/test.aspx" -->
</body>
其中 test.aspx 很简单:
<% int someInt = 123;
Response.Write(someInt);
%>
但在我看来,这有点像用电锯钉钉子。我会完全跳过 WebForms,直接进入 Asp.Net MVC。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)