ASP/C#代码隐藏无法通过标记实现控制问题:我有这样的标记(只有重要的几行):代码隐藏:命名空间MainSolution.CONTROLTEMPLATES。KundepublicpartialclassRTDeluxe:UserControl{protectedvoidPage_Load(objectsender,EventArgse){linkUl.InnerHtml=string.Empty;我可以在代码隐藏中访问ul并且没有编译错误。但是,当我调试代码时,我得到一个NullReferenceException,因为linkUl是NULL。首先,我认为命名空间是原因。但是,经过几次尝试,我确信它们是正确的。FileLocation似乎是正确的,我的iis的controltemplates文件夹有一个“Kunde”文件夹,里面有相应的ascx文件。我还有其他具有相同结构的.ascx文件->它们工作起来很有魅力。问题:命名空间的这种行为还有其他原因吗?你有什么提示我可以看到吗?编辑:RTDeluxe.ascx.designer.cs文件存在并且生成的linkUl如下所示:protectedglobal::System.Web.UI.HtmlControls.HtmlGenericControllinkUl;EDIT2:好的,我会尽量回答你所有的问题。感谢您的时间和反馈!我重新启动了VisualStudio->问题仍然存在。我还清理了解决方案并部署了一个新解决方案。->问题仍然存在。当我调试和检查控件层次结构时,我可以看到标签不存在。当我更改ID时,编译器会在代码隐藏中抛出错误(这是正确的)。如果我更改ID,我会得到与以前相同的行为。我还重新启动了我的IIS和整个计算机->没有变化。我已将Name属性添加到linkul-definition->无变化。当我尝试使用FindControl时,它返回NULL。目标框架是.NET3.5linkul不在中继器或任何其他控件内。删除/更改web.config也没有导致解决方案。在访问linkUl之前添加EnsureChildControlslinkUl不会改变任何内容。将代码移动到Page_PreRender也不起作用。我会尝试此处未列出的您的建议,并尽快添加它们。EDIT3:这是完整的标记:*EDIT4:好的,我发现了一些额外的信息:当我在标记中更改某些内容时,例如添加普通的html文本,浏览器无法识别或显示它。当我做这样的事情时:Labellabel1=newLabel();label1.Text="雨果活着!";控件。添加(标签1);表明。在visualstudio中一切看起来都很好......但是在服务器上“实时”,代码隐藏说明了一些奇怪的不同标记......这可能对你有帮助:Code-behindfileforusercontrolatclasslevel,添加以下代码:protectedglobal::System.Web.UI.HtmlControls.HtmlGenericControllinkUl=newSystem.Web.UI.HtmlControls.HtmlGenericControl();并删除受保护的global::System.Web.UI.HtmlControls.HtmlGenericControllinkUl;来自RTDeluxe.ascx.designer.cs文件可能是因为它的对象刚刚声明未创建。希望这有帮助..在访问控件或将代码移动到OnPreRender之前,您是否尝试过调用EnsureChildControls?有时在这种情况下,可能只是VisualStudio使用此文件进入了错误状态。我发现删除文件并重新创建它们通常可以解决问题。确保将代码复制到某处,以便您可以将其粘贴回新创建的文件中。您是否正在使用visualstudio发布功能进行部署?如果是这样,请尝试删除目标服务器上的.ascx文件。我的visualstudio无法识别文件已更改,因此无法复制新文件。我之前对.aspx文件也有类似的问题。这是因为optimizeCompilations在我的web.config文件中设置为true。当optimizeCompilations设置为true时,ASP.Net仅在认为有必要时才重建页面。有时它会变得混乱,您没有意识到您所做的更改需要重新构建页面,从而导致编译器无法捕获的运行时错误。有关此设置的详细信息,请参见此处http://msdn.microsoft.com/en-us/library/ms366723.aspx。为了解决这个问题,我不得不暂时将optimizeCompilations设置为false,重建我的网站,回收我的应用程序池,然后再次将其设置回true。希望这可以帮助。以上是C#学习教程:后面的ASP/C#代码无法通过标签控制分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
