如何从代码中的用户控件中提取所有javascript代码

时间:2012-02-17 18:29:23

标签: javascript asp.net extract code-behind

在我页面的PreRender事件中,我决定进行response.redirect()。 这意味着该页面上的<script language="JavaScript" type="text/javascript">标记中包含的javascript都不会被执行。

我希望如下:

String allJavaScript = MagicFunctionThatReturnsAllJSInTheControl(someUserControl)

ClientScript.RegisterClientScriptBlock("".GetType(), "s", allJavaScript );

Response.Redirect("~/newpage.aspx",false);

你知道如何编写一个代码,在C#/ vb.net MagicFunctionThatReturnsAllJSInTheControl(someUserControl)

由于

1 个答案:

答案 0 :(得分:2)

根据你的上一次评论,我认为我有一个可能的解决方案,即使它没有按照原先的说法回答你的问题。

因此,您希望currentpage.aspx中的脚本在客户端上执行,即使您正在将其重定向到newpage.aspx。在这种情况下,您可以避免Response.Redirect()并在客户端上执行重定向:

string redirectScript = String.Format(CultureInfo.InvariantCulture,
    "window.location.href = '{0}';", ResolveUrl("~/newpage.aspx"));

ClientScript.RegisterClientScriptBlock(GetType(), "redirectScript",
    redirectScript, true);

这样,客户端应该加载页面并在其中执行脚本,然后加载newpage.aspx。如果您可以在重定向页面加载时让原始页面短暂可见,这可能会解决您的问题。