关于web中弹出窗口的架构决策(.NET Vision)

时间:2010-12-23 22:56:28

标签: asp.net jquery jquery-ui user-interface

我一直想知道关于网络弹出窗口的意见(我的意思是那些通过div实现的)​​。

我一直不喜欢在他的navegation中加载具有此弹出窗口的整个大小的用户(当弹出窗口不可见时)。我假设按需要更好地加载内容(当用户点击相应的按钮时)。如果你在一个页面中有五个弹出窗口,我一直认为“字节”的增加会对下载页面产生影响。

按照“随需应变”选项,我一直很喜欢iframe,因为他们让我通过Javascript更改他的网址。所以,我显示一个包含iframe的弹出窗口(div),我可以在此刻更改下载页面的内容。

在我可能有限的观点中,这种方法有另一个优点。验证逻辑(通常是Asp.NET验证器)在弹出页面中被隔离,因此它们不会与位于父页面中的验证器发生任何冲突(如果适用)。

但似乎某些浏览器并没有很好地支持iframe,并且设计师社区对它们并不太感兴趣(而且这是一个具有强大安全隐患的对象)。

所以基本上我想知道你在展示这些UI时的体验是什么。我知道Jquery可以在一个div中动态加载HTML,但可能没有隔离客户端验证脚本。

评论?非常感谢!

1 个答案:

答案 0 :(得分:1)

首先,您可以创建验证组(http://msdn.microsoft.com/en-us/library/ms227424.aspx)。这将帮助您解决验证问题。

你是对的,你可以使用jQuery动态加载HTML,但我不确定它与aspx页面的效果如何。有一些问题有很多问题。考虑一下,你有page1.aspx和popup.aspx。如果你在iFrame中加载popup.aspx,你很好,因为它是一个单独的页面。如果你通过JQuery.load()动态加载它 - popup.aspx的输出将加载到你的page1.aspx(这包括html标签,表单标签,viewstate字段等)。这可能会导致一些问题。 (我没有尝试过猜测。)

我过去使用过.load,但我倾向于加载标准的html页面,而不是aspx页面。然后,当按下“提交”按钮时,它会调用具有相关字段的Web服务。这为我添加了更多的javascript编码 - 编写“提交”按钮,编写Web服务以处理ajax提交,在执行操作时编写“等待屏幕”或通过ajax提交数据。我还编写了js来进行客户端验证和任何代码来处理服务器端验证并将其报告给用户。

jQuery Validation插件适用于此 - 或者,如果您不需要更多插件/框架(http://msdn.microsoft.com/en-us/library/yb52a4x0.aspx),您可以实例化.net验证器