0

我有一个包含用户控件的页面。

我可以直接向控件发出ajax请求吗?

我知道我可以向 .aspx 或 .ashx 发出 ajax 请求;但是,是否可以直接访问 .ascx?

4

2 回答 2

2

在 ASP.NET MVC 应用程序中是:

public ActionResult Foo()
{
    return PartialView();
}

然后发送 AJAX 请求:

$('#someDiv').load('/home/foo');

将在 div 中加载 Foo.ascx 部分视图。

在经典的 ASP.NET WebForms 应用程序中,您需要设置一个通用处理程序,将用户控件的内容呈现到响应中。这是可以使用的通用处理程序的示例:

public class Handler1 : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        using (var writer = new StringWriter())
        {
            Page pageHolder = new Page();
            var control = (UserControl)pageHolder.LoadControl("~/foo.ascx");
            pageHolder.Controls.Add(control);
            context.Server.Execute(pageHolder, writer, false);
            context.Response.ContentType = "text/html";
            context.Response.Write(writer.GetStringBuilder().ToString());
        }
    }

    public bool IsReusable
    {
        get { return false; }
    }
}
于 2010-07-28T05:26:49.307 回答
1

您可以制作一个只包含用户控件的简单 ASPX 页面。

于 2010-07-28T05:31:28.090 回答