【发布时间】:2016-04-28 17:35:22
【问题描述】:
首先,我是使用 .NET 的菜鸟。
我在 IIS 中有一个功能已发布的 .NET 网站,但我没有源代码。 由于我必须在aspx页面中做一些更改,所以我想创建一个vs项目。
我创建了 Visual Studio 2010 项目,并将所有内容复制并粘贴到我的新项目中(我不知道这一步是否正确以及是否需要做更多的事情)但我有很多错误参考。 示例:
文件:secure/abc/main.aspx
<% @Page Language="VB" Explicit="True" Debug="False" %>
<%@ Import Namespace="System.IO" %>
<!--#include virtual="Config.aspx" -->
<!--#include virtual="Render.aspx" -->
<script language="vb" runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
Render(sender, e)
End Sub
</script>
<html><head></head><body>
blah blah blah...
<asp:Literal ID="TemplateHeader" runat="server"></asp:Literal>
blah blah blah...
</body></html>
文件:secure/abc/Config.aspx
<script language="vb" runat="server">
Public Class InitiatePage
Public Shared Function GetHeader(sender As Object, e As EventArgs, RequestPath As String)
blah blah blah
...
文件:secure/abc/Render.aspx
<script language="vb" runat="server">
Sub Render(sender As Object, e As EventArgs)
TemplateHeader.Text = InitiatePage.GetHeader(sender, e, Request.FilePath)
...
在这种情况下,Render.aspx 中有错误:
'TemplateHeader' 未声明。它可能无法访问,因为它 保护等级。
'InitiatePage' 未声明。它可能无法访问,因为它 保护等级。
我该如何修复这个参考错误?
我需要在 Render.aspx 中包含一个引用吗?如果是,为什么在 IIS 中以发布的方式运行良好?
谢谢
【问题讨论】:
-
我怀疑这仅在当前形式下“有效”,因为:
<!--#include virtual="Render.aspx" -->,Visual Studio 不会像 IIS 那样处理它。这不是构建这些东西的 ASP.NET 方式。TemplateHeader存在于main.aspx上,因此它将是Main页面类中的一个属性,并且将仅在该类中使用。像这样的其他“子页面”可能会被构建为用户控件,或者可能是使用通用母版页的页面。