我在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.
我应该动态添加这个脚本,我该怎么办?
答案 0 :(得分:3)
您正在尝试将虚拟路径与querystring
参数混合使用,我认为解析“~
”部分的基础ASP.NET方法希望字符串是纯虚拟路径,而不是一个网址。
因此,首先将其映射为纯路径,然后添加查询:
tsm.CompositeScript.Scripts.Add(new ScriptReference(ResolveClientUrl("~/Response.aspx") + "?action=test&id=" + id));