升级到 .NET 4.7.2 后 Iframe 标记出错

Error with the Iframe tag after upgrading to .NET 4.7.2

提问人:maya 提问时间:10/12/2023 最后编辑:Richardmaya 更新时间:10/12/2023 访问量:69

问:

我正在将我的 Web 项目升级到 .NET 4.7.2,但 Iframe 标记出错。

起初我收到错误:

HttpParseException:基类包含字段“frame1”,但其类型 (System.Web.UI.HtmlControls.HtmlGenericControl) 与控件类型 (System.Web.UI.HtmlControls.HtmlIframe) 不兼容。

我在aspx文件中进行了一些更改(增加了空间)并保存了它。它修复了此错误。但后来我在框架内出现了错误:

找不到资源。 描述:HTTP 404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL,并确保其拼写正确。 版本信息: Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.8.4667.0

我在网上寻找解决方案,并进行了以下更改: 改变:

Protected WithEvents frame1 As Global.System.Web.UI.WebControls.htmlIframe

自:

Protected WithEvents frame1 As Global.System.Web.UI.HtmlControls.HtmlIframe

改变:

<asp:TableCell> <IFRAME id="frame1"runat="server"> </IFRAME> </asp:TableCell>

自:

<asp:TableCell> <asp:htmlIframe id="frame1"runat="server"> </asp:htmlIframe> </asp:TableCell>

在配置文件中,更改了:

<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>

自:

<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
  <controls>
    <add tagPrefix="asp" namespace="System.Web.UI.HtmlControls" assembly="System.Web"/>
  </controls>
</pages>

毕竟,错误保持不变。

我是否正确理解了所需的更改?我做错了什么?

HTML asp.net

评论

0赞 Panagiotis Kanavos 10/12/2023
该错误抱怨的是应用程序代码,而不是 IFRAME。该错误指出字段的类型 HtmlGenericControl 与实际控件 HtmlIframe 不匹配。将字段类型更改为 。所有其他更改只会导致更多错误HtmlIframe
0赞 Panagiotis Kanavos 10/12/2023
HtmlIframe不是一个新类,它自 .NET Framework 4.5 以来就存在。当您从 更改为 时,您也更改了控件类型。IFRAMEHtmlIframe
0赞 Panagiotis Kanavos 10/12/2023
至于 404,这意味着 IFrame 指向无效的 URL。您没有在此处发布 URL,因此无法猜测出了什么问题
0赞 Panagiotis Kanavos 10/12/2023
为什么?是否要从 .NET Framework 3.5 迁移?这是13年的跳跃。在那段时间里,发生了很多变化。4.0 在 2010 年引入了许多重大变化,4.5 在 2012 年甚至更多,甚至在 WebForms 中也是如此。controlRenderingCompatibilityVersion="3.5"
0赞 maya 10/15/2023
抱歉,我没有提到我正在从 .NET FW 4.0 迁移。如果我将 controlRenderingCompatibilityVersion 更改为 4.0 或将其删除,我会在不同位置收到错误“无法获取未定义或空引用的属性'submit'”。你认为controlRenderingCompatibilityVersion是导致问题的原因吗?

答: 暂无答案