栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用于AJAX调用的Asp.Net单个控件呈现

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用于AJAX调用的Asp.Net单个控件呈现

问题在于,Page类并非旨在像这样进行实例化。如果启动Reflector,我们将很快看到在实例化Page类并将其作为IHttpHandler返回之后,Asp.Net内部设置了一个重要的属性。您将必须设置AppRelativeTemplateSourceDirectory。这是Control类上存在的一个属性,并且在内部设置了TemplateControlVirtualDirectory属性,Hyperlink例如使用该属性来解析链接中“〜”的正确URL。

请务必在调用LoadControl方法之前设置此值,因为AppRelativeTemplateSourceDirectory的值会传递到“主”控件创建的控件上。

如何获得正确的值来设置您的财产?在HttpRuntime类上使用静态AppDomainAppVirtualPath。总结一下,这应该起作用。

[WebMethod(EnableSession = true)]public string GetControl(int parma1, int param2){        var pageHolder = new Page() { AppRelativeTemplateSourceDirectory = HttpRuntime.AppDomainAppVirtualPath };    var viewControl = (UserControl)pageHolder.LoadControl("~/ascx/mycontrol.ascx");    var viewControlType = viewControl.GetType();        pageHolder.Controls.Add(viewControl);    var output = new StringWriter();    HttpContext.Current.Server.Execute(pageHolder, output, false);    return output.ToString();}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/440348.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号