我有一个包含用户控件的页面。
我可以直接向控件发出ajax请求吗?
我知道我可以向.aspx或.ashx发出ajax请求;但是,是否可以直接转到.ascx?
答案 0 :(得分: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; }
}
}
答案 1 :(得分:1)
您可以创建一个只包含usercontrol的简单ASPX页面。