我们有几个相当大的ASP.NET Web项目,我们被要求在一个标签界面下组合。因此,例如,当您单击选项卡1时,我们将在下面显示项目A.然后,如果您单击选项卡2,我们将显示项目B.我在下面将每个项目称为“应用程序”,因为它们为我们的用户执行不同的功能。
有没有人有好办法做到这一点?这里的一个关键问题是每个应用程序必须记住状态。因此,如果用户在应用程序A /选项卡1上填写Web表单的中途,那么他们点击另一个选项卡稍微做一些工作,当他们回到应用程序A /选项卡1时,他们应该看到他们的半完成表单(尚未保存到数据库中)。
我们已经讨论了几种选择:iframe可能是一种可能性,但我们害怕承诺,因为他们可能会失宠,他们可能会调整大小和打印问题。我们不认为我们可以简单地将每个应用程序嵌入并隐藏/显示它,因为您在选项卡之间单击,因为如果您打开了很多选项卡,页面的大小会变得非常大,而当.NET时我们会遇到问题app / page触发回发(我们的许多应用都使用传统的.net回发)。
在某些方面,我们基本上被要求编写一个在每个标签中都有.net应用的浏览器。我们实际上无法使用浏览器来执行此操作,因为我们无法强制浏览器打开新选项卡(而不是单独的窗口)。
有没有人对如何将多个.NET应用程序“包装”到一个选项卡式UI中有任何想法?或者这根本不可能?或者注销iframe解决方案是不对的?每个.net项目都可以在iframe中显示,iframe在不可见时会被隐藏?
感谢。
答案 0 :(得分:0)
在项目中我开发了一个自定义MVC框架。在选项卡内,您将为每个选项卡(应用程序)配备一个控制器。数据将使用视图状态或用于每个应用程序的模型保存在共享视图中。
答案 1 :(得分:0)
可能的解决方案可能是:
WindowsFormsHost
在WPF应用程序中托管Windows窗体控件(反之亦然,使用ElementHost
)。剩下的问题是必须保留状态的对话框,这可能会在更改标签时出现问题。
答案 2 :(得分:0)
选项1 为"标签创建自定义服务器控件"并使用选项卡在您要导航到的每个应用程序中引用它。您可以完全控制选项卡"点击"每个应用程序中的事件,以便您可以保存状态。如果需要在同一站点上将每个应用程序部署为虚拟目录,则每个应用程序都可以是自己的网站。
我可能会从代码中提取选项卡配置并将其放在配置文件或数据库中,以便您可以从选项卡UI添加和减去应用程序,而无需重新编译和重新部署选项卡控件。
选项2 创建一个"母版页"然后在页面中使用javascript来隐藏和显示每个应用程序中的iframe。您可以使用javascript确保iframe始终最大化为内容大小。使用iframe,您不必担心状态,因为它会同时出现在浏览器中。
可能的问题: