2

asp我有一个 aspx 文档(我对, .net, aspx, 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.jpgto也会something.png给我一个错误。我是否需要追踪从中编译的原始文件,还是我只是在以某种方式将我的更改搞砸的普通服务器端 asp(x?)?

4

1 回答 1

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 确实有一个设置,告诉它将警告视为错误。这将阻止它编译。这是如何设置的:

从 Project Settings> Configuration Properties 中选择构建设置并将“将警告视为错误”设置更改为 true。

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

于 2012-12-04T18:03:09.343 回答