动态添加ScriptReference,这是对ScriptManager的页面请求

时间:2009-09-23 09:42:49

标签: asp.net-ajax scriptmanager dynamic

我在ASP.NET页面中使用ScriptManager,并希望添加一个ScriptReference,这是一个页面请求,如下所示:

var id = 10;
tsm.CompositeScript.Scripts.Add(new ScriptReference("~/Response.aspx?action=test&id=" + id));

但它引发了一个错误:

'~/Response.aspx?action=test&id=10' is not a valid virtual path.

我应该动态添加这个脚本,我该怎么办?

1 个答案:

答案 0 :(得分:3)

您正在尝试将虚拟路径与querystring参数混合使用,我认为解析“~”部分的基础ASP.NET方法希望字符串是纯虚拟路径,而不是一个网址。 因此,首先将其映射为纯路径,然后添加查询:

 tsm.CompositeScript.Scripts.Add(new ScriptReference(ResolveClientUrl("~/Response.aspx") + "?action=test&id=" + id));