js字符串中的鳄鱼标记(< %%>)?

时间:2010-04-13 17:20:47

标签: asp.net javascript

我正在尝试重定向从配置文件中读取网址的页面。

然而,当我尝试这个时:

   <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

6 个答案:

答案 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>