如何用asp.net页面提供javascript?

时间:2011-07-27 22:55:47

标签: javascript asp.net

我不知道标题是否足够清晰,但让我解释一下我想要做什么。

我有两个用asp.net和C#编写的webapp。

App A有以下html。

<script type="text/javascript" id="blah" src="http://somServer/AppB/page.aspx?p=q"></script>

App B收到上述请求,需要动态地将javascript注入上面的脚本标记。我在App B的page.aspx中有以下代码,但它不起作用。我需要App B来返回纯javascript,而不是html。

namespace AppB
{
    public partial class Default : System.Web.UI.Page
    {
       if(!Page.IsPostBack)
       {
         Response.Clear();
         Response.ClearContent();
         REsponse.ClearHeader();
         Response.AddHeader("content-type", "text/javascript");
         var p = Request.Query["p"];
         if(!string.IsNullOrEmpty(p))
         {
            this.Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "test", "alert('test');", false");
         }
     }
}

1 个答案:

答案 0 :(得分:3)

您可能希望使用HttpHandler而不是Page(请参阅http://support.microsoft.com/kb/308001)来投放非HTML内容。这将允许您编写类似:

的内容
public class JavascriptHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/javascript";
        string p = context.Request.QueryString["p"];
        string script = String.Format("alert('test - p={0}');", p);
        context.Response.Write(script);
    }
}