Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用Server.Execute()呈现UserControl时出现问题_Jquery_Asp.net_Webforms - Fatal编程技术网

Jquery 使用Server.Execute()呈现UserControl时出现问题

Jquery 使用Server.Execute()呈现UserControl时出现问题,jquery,asp.net,webforms,Jquery,Asp.net,Webforms,当Server.Execute()myusercontrol包含asp(非html)控件时,我收到以下消息 用户控制: <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyWebUserControl1.ascx.cs" Inherits="ImageHandlerClient.WebUserControl1" %> 关于头部runat=“server”,您可以尝试以下操作: public static s

当Server.Execute()myusercontrol包含asp(非html)控件时,我收到以下消息

用户控制:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyWebUserControl1.ascx.cs" Inherits="ImageHandlerClient.WebUserControl1" %>
关于头部runat=“server”,您可以尝试以下操作:

public static string RenderView(string controlName)
{
    var pageHolder = new System.Web.UI.Page();
    var headHolder = new System.Web.UI.HtmlControls.HtmlHead();

    pageHolder.Controls.Add(headHolder);
    var formHolder = new System.Web.UI.HtmlControls.HtmlForm();
    pageHolder.Controls.Add(formHolder);

    // dynamically adding a script manager
    var sm = new System.Web.UI.ScriptManager();
    formHolder.Controls.Add(sm);


    var viewControl = pageHolder.LoadControl(controlName);

    formHolder.Controls.Add(viewControl);

    var output = new StringWriter();
    HttpContext.Current.Server.Execute(pageHolder, output, false);

    return output.ToString();
}

希望这会有所帮助

你的问题是什么?您是否检查了异常消息(通过单击弹出窗口中“操作”下的“查看详细信息…”)?错误执行子请求意味着ascx内部有问题,…当执行ascx文件时,所有内容都是HTML工作正常,但当添加asp类按钮的控件时,不使用@Igor方法获取内部异常,并将堆栈跟踪的内容添加到您的帖子中。在找出内部异常之前,我们无法帮助解决此问题。我编辑了问题并添加了堆栈跟踪。我收到此错误:“页面上需要ScriptManager才能使用ASP.NET AJAX脚本组件。”@ZSH同样适用:动态添加ScriptManager(更新了我的答案),但是,如果您的目标是提取控件发布的html代码,恐怕它在客户端无法工作。
public static string RenderView(string controlName)
{
    var pageHolder = new System.Web.UI.Page();
    var headHolder = new System.Web.UI.HtmlControls.HtmlHead();

    pageHolder.Controls.Add(headHolder);
    var formHolder = new System.Web.UI.HtmlControls.HtmlForm();
    pageHolder.Controls.Add(formHolder);

    // dynamically adding a script manager
    var sm = new System.Web.UI.ScriptManager();
    formHolder.Controls.Add(sm);


    var viewControl = pageHolder.LoadControl(controlName);

    formHolder.Controls.Add(viewControl);

    var output = new StringWriter();
    HttpContext.Current.Server.Execute(pageHolder, output, false);

    return output.ToString();
}