我有一个Report.aspx页面,可以加载不同的UserControls
来交替查看特定的对象数据。 UserControls
继承了覆盖特定操作方法的相同基类型类。我为每个UserControl
使用特定的Service类来获取实现具有操作签名的特定接口的数据。
我现在使用工厂模式将实际的UserControl
类型返回到Report.aspx并将其加载到PanelControl
,然后调用控制方法以根据某些参数获取一些数据。 / p>
由于其动态特性,每个回发都应加载此UserControl
,接受任何其他解决方案。在每个回发虽然我不需要从调用DL的BL加载数据。我试图找到一个解决方案,向BL显示我不需要你再次调用数据,因为我只是回发其他问题(例如下载报告文件,打印等)。我希望这发生在BL级别,而不是ASPX前端。到目前为止,我认为我应该让BL知道这个(PostBack或!PostBack)。我想我可以创建一个参数true,false并传递PostBack属性。
任何想法,架构和最佳实践都是如此受欢迎。
答案 0 :(得分:0)
为什么不包装逻辑来调用if(!Page.IsPostback){....}中的BL?
答案 1 :(得分:0)
你能否详细阐述你的声明“在每次回发中虽然我不需要从调用DL的BL加载数据。”??在每次回发期间,用户控件需要显示数据(即使它与上一次回发的数据相同),因为usercontrol与ASPNET网页经历相同的生命周期。你怎么能阻止它?
答案 2 :(得分:0)
我已经确定一个非常好的解决方案是.NET 4.0中的System.Runtime.Caching。 对于您需要使用它的每一层都非常好。