【问题标题】:Changing displayed data from a static method in ASP.NET从 ASP.NET 中的静态方法更改显示的数据
【发布时间】:2026-01-08 10:35:01
【问题描述】:

我有两个用户控件位于一个页面上,它们决定了应该显示哪个。用户控件生成一些 html,这些 html 被传递到 asp:literal 中,随后通过 javascript 进行操作。由于缺少允许我在项目中使用的合适控件,因此这样做是因为。

当用户单击视图更改按钮时,会从控件的 javascript 在主页(包含控件的页面)上调用 WebMethod。从这里调用控件上的静态方法。然后控件需要重新生成 html 并将其放入 asp:literal 中以完成视图更改。

我的问题是我在控件页面上的静态方法中,并且无法访问非静态 genorateHtml 函数。我尝试了单例模式但没有成功(这可能是由于实施不当造成的)。关于如何拨打这个电话的任何想法?谢谢!

【问题讨论】:

    标签: c# asp.net static-methods


    【解决方案1】:

    我曾经在我从事的一个项目中遇到过类似的问题。我们最终采用的解决方案是 System.Web.UI.ICallbackEventHandler 的实现,它带有部分渲染以根据参数仅返回所需的内容。 ICallbackEventHandler 在页面生命周期中运行。

    当时我们遇到的唯一问题是与实现相关的性能问题,它会回发整个表单,而不仅仅是您想要的参数。

    也许对您来说最好的方法是通过this method,他们通过静态方法呈现控件。这可能会满足您的需求。

    希望这会有所帮助!

    【讨论】: