ASP.net 代码中包含不执行

标签 asp.net parsing server-side-includes

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

(注意——下面显然是基于我的调试尝试的简化实现。实际上,我在实际项目中得到了其他包含平面 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-classic 思维方式思考。

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

然而,asp-classic 样式的服务器端包含在 .aspx 中仍然可以正常工作,但有一些限制,例如无法通过父路径包含,并且您还会在包含的文件中失去智能感知。

要使用 SSI,请使用 <!--#include file="xxx.ext" --> directive.

所以在你的例子中:

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

其中 test.aspx 很简单:

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

但是IMO有点像用电锯敲钉子。我会完全跳过 WebForms,直接进入 Asp.Net MVC。

关于ASP.net 代码中包含不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11959125/

相关文章:

c# - 在 Visual Studio 2010 中调试 x64 Web 应用程序

c# - 安全建议

java - Jsoup 解析非空替代文本

java - 对于 Hibernate 的 "Could not parse configuration"错误我该怎么办?

parsing - 在 Rust 中反序列化键 = 值字符串列表的最佳方法

PHP 检查 require_once() 内容是否为空

asp.net - 如何使 PDF 可下载,使其不会在新窗口中打开

c# - 即使设置为非持久性,ASP.NET MVC 4 身份验证 cookie 也会被保存

php - 将文件包含到变量中

html - 服务器端包括中断布局