0

更新:关闭,发现即使我在调试时遇到该错误,它实际上已添加到 Controls 集合中,但仍然很烦人,因为我无法像往常一样看到它。

这段代码过去可以正常工作,但由于某种原因它开始失败。只有当我尝试将 UserControl 添加到“flightResult”时它才会失败。如果我使用 .NET 控件,它就可以正常工作。

我尝试过的事情。

  1. 添加另一个带有静态文本的简单 UserControl,但它给了我同样的错误。
  2. 清理和重建我的解决方案。
  3. 将 flightResult 更改为“new Panel()”,但同样的问题。
  4. 在网上搜索遇到此问题的人,我找到了一个线程,但没有解决方案。

最近真正的唯一变化是我安装了 IIS 7.0 - 这与此有什么关系吗?

我的代码:

 var flightResult = new HtmlGenericControl("div");

 var flightProduct = (FlightProduct) LoadControl("~/UserControls/FlightProduct.ascx");

 //finalResult.InnerText = ""

finalResult.Controls.Add(flightProduct);

//finalResult.InnerText = {InnerText = '((System.Web.UI.HtmlControls.HtmlContainerControl)(finalResult)).InnerText' threw an exception of type 'System.Web.HttpException'}
4

1 回答 1

0

它对我有用,试试这个。

用户控制标记

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Control1.ascx.cs" Inherits="Control" %>
<asp:Label ID="lblTest" runat="server" Text="This is a test"></asp:Label>    

Default.aspx 页面代码后面

const string path = "~/Control1.ascx";
HtmlGenericControl div;
 protected void Page_Load(object sender, EventArgs e){

   div = new HtmlGenericControl("div");
    div.Attributes.Add("runat", "server");
    var userControl = LoadControl(path);
  if (userControl != null)
      div.Controls.Add(userControl);
  this.form1.Controls.Add(div);

}
于 2012-12-02T22:39:00.493 回答