ASPX Server方评论弄乱了控件集合

时间:2014-02-13 22:28:50

标签: asp.net comments

我遇到过一个我遇到的最奇怪的问题。这很荒谬。

服务器端注释作为LiteralControl添加到原始容器控件。我知道这听起来真的很疯狂,但这就是我在这里遇到的情况:(

我的环境:Visual Studio 2012,IIS 7,.net frameworks 4.0

我在这里复制我的测试页面:

Default.aspx页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div runat="server" id="divTest">
       <%--test--%>
       <%--test--%>
    </div>
    </form>
</body>
</html>

Default.aspx.cs:

using System;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(string.Format("divTest Control count: {0}", divTest.Controls.Count));
    }
}

的web.config:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web>
</configuration>

结果页面显示输出:

divTest Control count: 3

最有趣的部分是,我尝试在另外3个框中运行同一页面(具有完全相同的配置/环境),并且它在其中2个中按预期工作,而另一个显示与我相同的结果。同样,如果我将构建目标框架版本更改为2.0,它会显示预期结果(divTest控件计数:1)。只有在4.0中构建它时才会发生这种情况

知道这种奇怪行为的原因是什么?我在这里错过了什么吗?

由于

本杰明

1 个答案:

答案 0 :(得分:0)

额外的LiteralControl不是来自评论,而是围绕它的空白区域。

当从VS.NET 2010切换到2013时,同样的事情发生在我身上(是的,刚刚升级的VS.NET - 网站目标框架没有变化 - 4.0)

我的解决方案是使用FindControl()方法而不是直接通过索引访问ControlCollection。