我有一个包含用户控件的页面。
我可以直接向控件发出ajax请求吗?
我知道我可以向 .aspx 或 .ashx 发出 ajax 请求;但是,是否可以直接访问 .ascx?
我有一个包含用户控件的页面。
我可以直接向控件发出ajax请求吗?
我知道我可以向 .aspx 或 .ashx 发出 ajax 请求;但是,是否可以直接访问 .ascx?
在 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; }
}
}
您可以制作一个只包含用户控件的简单 ASPX 页面。