gpt4 book ai didi

c# - 无法修改 Controls 集合,因为该控件包含代码块(即 <% ... %>)

转载 作者:搜寻专家 更新时间:2023-10-31 08:37:16 26 4
gpt4 key购买 nike

我遇到了这个错误并找到了解决方法并且解决方案对我有用,但我想知道这是解决问题的最佳方法并且我想确保它不会严重影响任何其他页面.希望高手帮忙。如果这是最好的解决方案,那么你们中的许多人就可以省心了。

当代码块被放置在MasterPage 中时会发生此错误。将代码块放在占位符中以解决问题。将 AJAX 扩展器添加到您的网页时,它将尝试在头部注册脚本。如果 MasterPage 中存在代码块,则可能会发生错误。

要解决此问题,只需将代码块移动到 MasterPage 头部的占位符中,如下所示:

<head id="Head1" runat="server">
<title>Untitled Page</title>
<link href="StyleSheet.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder ID="myPlaceholder" runat="server">
<script language="javascript" type="text/javascript" src="<%= Page.ResolveClientURL("~/javascript/global.js")%>"></script>
</asp:ContentPlaceHolder>
<asp:ContentPlaceHolder ID="head" runat="server"></asp:ContentPlaceHolder>
</head>

最佳答案

该错误是合乎逻辑的,您不能在使用 <%= %> 呈现控件后混淆它们。

解决这个问题的一种方法是使用文字控件,并在代码后面呈现脚本行。

<asp:ContentPlaceHolder ID="myPlaceholder" runat="server">
<asp:Literal runat="server" ID="txtIncludeScript" EnableViewState="false"></asp:Literal>
</asp:ContentPlaceHolder>

和代码隐藏。检查是否为 null,因为如果更改占位符,则文字为 null。还要设置 EnableViewState=false,因为您在每个 Page_Load 上都设置了它并且您不希望将它保存到 View 状态。

  if(txtIncludeScript != null)
{
txtIncludeScript.Text =
string.Format("<script language=\"javascript\" type=\"text/javascript\" src=\"{0}\"></script>",
Page.ResolveClientUrl("~/javascript/global.js"));
}

关于c# - 无法修改 Controls 集合,因为该控件包含代码块(即 <% ... %>),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6774590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com