我正在向我的页面动态添加用户控件:
- 当用户点击按钮时,jquery ajax 方法执行,它调用我的 web 方法
- web 方法返回我的用户控件呈现为字符串
- 在 ajax 调用的成功部分,接收到的 html 被附加到占位符
呈现我的用户控件的方法:
public static string RenderUserControlAsString(string path)
{
var page = new PageOverride();
var viewControl = (UserControl)page.LoadControl(path);
page.Controls.Add(viewControl);
var output = new StringWriter();
HttpContext.Current.Server.Execute(page, output, true);
return output.ToString();
}
这工作正常,但我的 asp:Image 元素的 ImageUrl 有问题(我的用户控件包含多个元素,而 asp:Image 只是其中之一):
<asp:Image ID="imgDelete" runat="server" ImageUrl="~/images/delete.gif" onmouseover="this.style.cursor='hand'" onmouseout="this.style.cursor='default'"/>
被ImageUrl
转换为../images/delete.gif
,这是不行的。实际上,ImageUrl
总是在它前面收到两个点和一个斜线。任何想法如何防止这种情况?
编辑 - 项目结构:
根:
- 图片
- 删除.gif
- ...
- 网页控件
- MyWebControl.ascx
- ...
- MyWebService.asmx
- 我的页面.aspx