Asp.net 通过Ajax处理程序呈现.Net控件

Asp.net 通过Ajax处理程序呈现.Net控件,asp.net,ajax,handler,Asp.net,Ajax,Handler,我有一个ASP.Net应用程序,它有一个UserControl,需要在ASPX页面上呈现(正常情况下),也可以通过Ajax使用处理程序 一种解决方案是让UserControl简单地构建HTML字符串,而不是像通常那样呈现控件 这样,ASPX页面就可以简单地用输出填充Literal控件,而处理程序可以将输出写入响应对象,以便Ajax拾取 这是理想的解决方案吗?这种方法有什么缺点吗?如果这样做,每次回发到服务器时,都必须从客户端重新创建用户控件。但是,就性能而言,这可能更好。但是,我认为UC不能像典

我有一个
ASP.Net
应用程序,它有一个
UserControl
,需要在
ASPX
页面上呈现(正常情况下),也可以通过
Ajax
使用处理程序

一种解决方案是让
UserControl
简单地构建
HTML
字符串,而不是像通常那样呈现控件

这样,
ASPX
页面就可以简单地用输出填充
Literal
控件,而处理程序可以将输出写入响应对象,以便
Ajax
拾取


这是理想的解决方案吗?这种方法有什么缺点吗?

如果这样做,每次回发到服务器时,都必须从客户端重新创建用户控件。但是,就性能而言,这可能更好。但是,我认为UC不能像典型的用户控件那样参与viewstate和ASP.NET对象模型。您必须说明UC中的所有操作都得到了适当的处理,才能对web做出反应

如果有大量内容要渲染,UC方法就可以了。我们讨论的是呈现标记并将其注入到UI中,因此这确实会产生效果并使其更容易。如果没有那么多的标记,任何替代方案都可以

如果您只需要将数据推送到客户机,另一种方法是通过web服务将JSON推送到客户机,并在客户机上构建UI。这也很有效


HTH.

如果这样做,每次回发到服务器时,都必须从客户端重新创建用户控件。但是,就性能而言,这可能更好。但是,我认为UC不能像典型的用户控件那样参与viewstate和ASP.NET对象模型。您必须说明UC中的所有操作都得到了适当的处理,才能对web做出反应

如果有大量内容要渲染,UC方法就可以了。我们讨论的是呈现标记并将其注入到UI中,因此这确实会产生效果并使其更容易。如果没有那么多的标记,任何替代方案都可以

如果您只需要将数据推送到客户机,另一种方法是通过web服务将JSON推送到客户机,并在客户机上构建UI。这也很有效


HTH.

现在有很多JS模板工具可以解决这个问题。看看MustacheJS,它允许在客户端js和C#Net中呈现相同的模板


然后,您可以在模板文件上创建HTML,或者通过Ajax在JS中呈现HTML,或者在.Net中呈现HTML,并在页面加载期间简单输出。

现在有许多JS模板工具可以解决此问题。看看MustacheJS,它允许在客户端js和C#Net中呈现相同的模板


然后,您可以在模板文件上创建HTML,或者通过Ajax在JS中呈现HTML,或者在.Net中呈现HTML,并在页面加载期间简单输出。

谢谢-我的想法也是。看看Ajax部分的JSON选项,虽然它可能不会在下载大小上提供巨大的差异,因为大多数HTML都是数据库绘制的。在这种情况下,我同意,直接JSON传输不会带来巨大的节约。但这仍然是一个很好的选择。谢谢——我的想法也是。看看Ajax部分的JSON选项,虽然它可能不会在下载大小上提供巨大的差异,因为大多数HTML都是数据库绘制的。在这种情况下,我同意,直接JSON传输不会带来巨大的节约。但这仍然可能是一个好的选择。