我正在尝试重定向从配置文件中读取网址的页面。
然而,当我尝试这个时:
<script type="text/javascript">
<%string redirectUrl = System.Web.Configuration.WebConfigurationManager.AppSettings["RedirectURL"];%>
window.parent.location.replace("<%=redirectUrl%>");
</script>
鳄鱼标签&lt; %%&gt;没有突出显示,当我运行时,我在黄色屏幕中收到以下错误:
the controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
我做错了什么?
谢谢!
编辑:
如果我只是将网址直接放入代码中,它就可以工作,就像在
中一样window.parent.location.replace("http://theurl.com");
但我需要根据其他事情改变这一点,所以我需要它在配置中:S
答案 0 :(得分:3)
你可能在
中包含了这个块<head runat="server"> ... </head>
块。如果您想使用&lt; %%&gt;阻止你需要从head标签中删除runat =“server”,但是你将丢失Page.Title和其他一些功能。
在您的特定情况下,执行
window.parent.location.replace("<%= System.Web.Configuration.WebConfigurationManager.AppSettings["RedirectURL"] %>");
应解决问题,即摆脱&lt; %%&gt;标签
答案 1 :(得分:1)
我多次遇到过这个问题。问题是ASP.NET不知道它在控件层次结构中创建控件的位置。我已经通过在服务器控件中放置代码解决了这个问题,例如:
<asp:PlaceHolder runat="server">
<script type="text/javascript">
window.parent.location.replace("<%=System.Web.Configuration.WebConfigurationManager.AppSettings["RedirectURL"]%>");
</script>
</asp:PlaceHolder>
答案 2 :(得分:0)
请试试这个:
<script type="text/javascript">
window.parent.location.replace("<%=System.Web.Configuration.WebConfigurationManager.AppSettings["RedirectURL"];%>");
</script>
答案 3 :(得分:0)
<script type="text/javascript">
window.parent.location.replace("<%=System.Web.Configuration.WebConfigurationManager.AppSettings["RedirectURL"]%>");
</script>
答案 4 :(得分:0)
protected void Page_Load(object sender,EventArgs e)
{
Page.DataBind();
}
并使用此
<script type="text/javascript">
window.parent.location.replace('<%#System.Web.Configuration.WebConfigurationManager.AppSettings["RedirectURL"];%>');
</script>
答案 5 :(得分:-1)
试试这个
<script type="text/javascript">
<%= string redirectUrl = System.Web.Configuration.WebConfigurationManager.AppSettings["RedirectURL"] %>
window.parent.location.replace("<%=redirectUrl%>");
</script>