这个asp是以某种方式编译的吗?

时间:2012-12-04 17:56:50

标签: asp.net

我有一个aspx文档(我对asp.netaspx,nada一无所知。它大部分都是普通的html表结构,但是有一些asp字符串似乎插入了某种动态内容。它们的形式如下:

<asp:Image ID="imgTopImage" runat="server" ImageUrl="~/Images/topbar.jpg" />    
<asp:Label ID="lblStyleCaption" runat="server" CssClass="label_caption" Text="Theme: " Visible="false" />
<asp:DropDownList ID="dropStyles"  Width="150" runat="server" AutoPostBack="true" />

似乎每当我删除其中一个时 - 比如说,带有asp:Image标签的行是无害的,我认为应该删除图像,当我加载页面时,我会运行 - 时间错误。这非常特别。我的问题是,这是以某种方式汇编的,这使它变得如此脆弱。即使只是将topbar.jpg更改为something.png也会给我一个错误。我是否需要跟踪编译的原始文件,或者这是正常的服务器端asp(x?),我只是在其他方面搞砸了我的更改?

1 个答案:

答案 0 :(得分:3)

编译ASPX页面,这些标记引用服务器已知的对象,因此删除它们可能会导致错误。

首先,外行人的一些基本术语

以ASP开头的标签:(示例,<ASP:Button id="btnSubmit" runat="Server" Text="Click Me" />

不是标准的html按钮。它们是 服务器控件 。生成出现在浏览器中的html时,ASP.NET运行时会查看服务器控件并根据访问该页面的浏览器创建相应的内容。

对于Button控件,它通常是一个标准的html按钮,但运行时也会生成JavaScript等处理按钮的服务器端点击事件。

为什么删除控件时可能会出现错误:

通常,编写的服务器端代码可以访问这些控件。例如,由于某些事件,开发人员可能已决定更改Text或Visible属性。

如果是这种情况,并且删除了<asp:Button>标记,则会有服务器端代码引用aspx页面中不再存在的对象,因此会出错。

有关服务器控件的这些链接的更多内容:

我还建议花一些时间观看基本视频或浏览http://www.asp.net/get-started

上的教程

我刚在你的问题中注意到了这一点:

  

即使只是将topbar.jpg更改为something.png也会给我一个错误。

这有点奇怪,但我知道它至少有一种可能发生的方式......

通常,如果您包含图像的相对URL或不存在的链接页面,Visual Studio将为您提供 警告 (而不是错误) 。警告不应阻止您编译。但是,Visual Studio确实有一个设置,告诉它将警告视为错误。这将阻止它编译。以下是如何设置的:

  

来自项目设置&gt;配置属性选择构建   设置并将“将警告视为错误”设置更改为true。

如果您不希望将警告视为错误,只需将设置更改为false。