我不知道标题是否足够清晰,但让我解释一下我想要做什么。
我有两个用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");
}
}
}
答案 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);
}
}