首页 > 解决方案 > ASP.NET Web 窗体和 React

问题描述

我是 React 的新手,所以请与我裸露。

我制作了一个简单的 ASP.NET Web Forms 项目,它成功地在 React 中打开了一个页面。我的下一个问题是,是否有可能从 React 页面打开一个带有 ASPX 页面内容的新弹出窗口,并以某种方式在两个页面之间进行通信?

场景:我们已经购买了一个使用 React 制作的简单布局设计器的访问权限,我们希望为 JSON 提供不同的设置。然而,这些设置当前来自生成 JSON 的 ASP.NET Web 窗体页面(承载一个 ASCX 控件)。这种情况完全不可能吗?也许我们可以使用服务在两者之间进行通信,但重要的是这个第 3 方设计者(通过这个的开发者,可以实现自定义功能,比如打开一个弹出窗口或类似的)可以打开我们有的设置弹出窗口在 ASP.NET Web 窗体中创建。

如果这太复杂了,我们将不胜感激我们如何实现这一点。例如,iframe 仍然是一个东西吗?还是有更好的新技术?(如果我们需要在 React 项目之外托管一个页面,该页面会返回)。

我希望我的解释是可以理解的,否则请告诉我,我会尽力详细说明。

希望能帮到你,先谢谢了!

为了澄清起见,我们已经聘请了 3rd 方软件的开发人员来帮助我们实施解决方案,React-wise,所以我只需要找出关于整合 2 个世界的可能性。

标签: asp.netreactjswebforms

解决方案


是引导程序、jQuery + jQuery.ui 对话框还是反应?他们都应该工作。但是,在所有情况下您都不能在您显示的对话框中允许任何回发。一旦你做了回发,页面循环就会开始,它会弹出对话框。

而且这个问题并不仅限于网络表单,而是您现在必须避免在显示此类对话框时回发。当然,虽然今天的 Web 表单有些遗留,但它们非常好,因为它们很容易将控件及其事件连接到后面的代码中。

不用说,采用具有所有这些出色对话框和小部件的框架之一?它们确实很好,但现在这意味着您必须编写 ajax 调用并避免回发——这可能是很多工作。因此,即使 jQuery.UI 也可以将整个不同的 aspx 页面加载到 div 中并弹出它?(而且效果很好)。好吧,好吧,你现在有一个很酷的不同页面作为对话框弹出表单,但是当你这样做时,你不能通过标准的 asp.net 按钮和控件触发任何回发。如前所述,这个问题并不仅限于 asp.net web 表单,而只是 webforms obvsilty 鼓励了很多带有代码的回发。这些回发的往返次数是昂贵的,但可以节省大量时间来轻松编写此类代码。

您可以尝试一个对话框表单,其中包含一个围绕确实导致回发的控件的更新面板。因此,在 Web 表单中,曾经是您的朋友并导致编码非常容易的东西现在是您的同一个敌人。(那个敌人是很多回传和往返)。

因此,您必须放弃大量执行回发的代码和表单,根本无法将其推入说一些弹出对话框表单,因为该表单很可能有很多回发-它们会折叠该对话框并开始往返过程。

只要你记住以上几点?然后采用 bootstrap、jQuery.UI 对话框或 react 应该可以正常工作 - 但是您会花费大量时间编写 ajax 调用,并且那些对后面代码的调用将不会使用表单上的文本框和控件 - 因为它们是 sill坐在浏览器 + 用户桌面上,当您对服务器端代码进行 ajax 调用时,不要随随便便。


推荐阅读