在其他 ASPX 文件中包括 ASPX 文件
本文关键字:文件 ASPX 包括 其他 | 更新日期: 2023-09-27 17:55:32
<% if (Session["desig"].ToString() == "Developer"){%>
<td>
<select name='zone' id="zone" onchange="showLoc(this.value,'mlodg_loc')">
<option value="Select Zone">Select Zone</option>
<option value="East">East</option>
<option value="West">West</option>
<option value="North">North</option>
<option value="South1">South1</option>
<option value="South2">South2</option>
<option value="South3">South3</option>
</select>
</td>
<%}
else
{%>
<td>
<select name='zone' id="Select1" onchange="showLoc(this.value,'mlodg_loc')">
<option value="Select Zone">Select Zone</option>
<option value="<%#Session["zone"]%>"><%# Session["zone"].ToString() %></option>
</select>
</td>
<%}%>
如果我直接编写上面的代码,上面的代码工作正常,我尝试在其他文件中编写此代码,并在主文件中编写此代码,我做了Response.WriteFile("zone.aspx")
我如何包含它有什么方法可以包含并且还想知道编写上述语句的更好方法。
谢谢
UserControls
asp.net 为此目的,请为您拥有的这段代码创建一个 .ascx 文件,并将其用作任何地方的控件。
Response.WriteFile
只是将文件内容写入 Http 响应流,而不对其进行解析。
虽然可以在 asp.net(<!--#include file="xxx.ext" -->
)中使用服务器端包含,但这在IMO中具有asp经典的代码气味。
重用.aspx
组件的更好方法是使用用户控件 (.ascx)。
类似的问题在这里
更新
Response.WriteFile
适用于纯 Html、.css 或 .js,但不适用于包含 c# 或引用 .Net 对象的代码(您在代码中使用了 Session
),例如
Response.WriteFile("HtmlSnippet.html")
HtmlSnippet.html
在哪里
<p>In breaking news, scientists have discovered a planet in
<a href='http://en.wikipedia.org/wiki/Alpha_Centauri_Bb'>Alpha Centauri</a>
</p>
使用服务器端包含,例如 <!--#include file="file.inc" -->
允许您在file.inc中放置这样的东西:
<% if (Session["desig"].ToString() == "Developer"){ %>
You are a Developer!!
<% } %>
但是,建议使用用户控件 ( .ascx
),它允许您执行与服务器端包含大致相同的操作,但只是以更可重用、面向对象和可测试的方式执行。可重用控件将是第一类对象,具有属性、方法并能够引发事件。你需要在这里做一些研究。
Response.WriteFile 不会在服务器端处理代码。它只是获取html的内容并将其通过管道传输到浏览器。如果您的代码包含必须由服务器处理的代码块,您可以使用以下方便的功能:
<div ID="menuContent" runat="server">
<!-- #Include virtual="/menu.aspx" -->
</div>
在我的菜单中.aspx文件我有原始 html 和一些 C# 代码块,ASP 将在将内容插入页面后解决这些问题。很棒吧?