Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何让弹出窗口与它来自的页面保持相同的逻辑?_C#_Javascript_Jquery_Html - Fatal编程技术网

C# 如何让弹出窗口与它来自的页面保持相同的逻辑?

C# 如何让弹出窗口与它来自的页面保持相同的逻辑?,c#,javascript,jquery,html,C#,Javascript,Jquery,Html,我正在创建一个弹出式聊天窗口,允许用户将呼叫脚本从页面弹出到自己的窗口中,这样他们可以保持该窗口打开,但也可以访问网站的其他页面。我只是从调用脚本中获取html并将其插入弹出窗口。问题是,当用户单击、更改选项时,无论发生什么,新窗口都没有与其主页相同的文件。我想知道如何将逻辑/功能连接或传输到新窗口?例如,我需要进行一个ajax调用,该调用进入项目中c#文件中的控制器。有人知道我在说什么以及如何做到这一点吗?我不确定我是否完全理解您所描述的内容,但您可以使用localStorage或sessio

我正在创建一个弹出式聊天窗口,允许用户将呼叫脚本从页面弹出到自己的窗口中,这样他们可以保持该窗口打开,但也可以访问网站的其他页面。我只是从调用脚本中获取html并将其插入弹出窗口。问题是,当用户单击、更改选项时,无论发生什么,新窗口都没有与其主页相同的文件。我想知道如何将逻辑/功能连接或传输到新窗口?例如,我需要进行一个ajax调用,该调用进入项目中c#文件中的控制器。有人知道我在说什么以及如何做到这一点吗?

我不确定我是否完全理解您所描述的内容,但您可以使用localStorage或sessionStorage使用浏览器跨页面保存信息。请参见此处的说明:
这里:

一种方法是使弹出窗口成为一个“真实”页面,这样弹出窗口呈现相同的页面,只是没有布局,所有的“逻辑”(我假设这意味着包括javascript文件?)都将包括在内。此处不复制HTML,您正在服务器上呈现页面。我不熟悉基于C#的框架/web应用程序,但简单地传递URL查询参数,如'layout=false',是告诉脚本以“普通”布局呈现页面的一种简单方法。这里可能有更优雅的方法。例如,在Sinatra应用程序(Ruby)中,我的路线可以根据路线上的某个后缀检测要使用的布局类型。例如/app/chat vs/app/chat.part。。。通常,您这样做是为了呈现JSON、vs HTML等等。“part”可以是您想要的任何内容,这取决于您的框架是否允许(您总是可以滚动您自己的函数来检查请求变量,而不是那么难)

另一种我从未尝试过的方法是,在允许弹出窗口打开之前,将javascript嵌入或注入复制到弹出窗口的html中。以下是一个与此相关的答案:

我认为有更先进的方法,包括在页面中使用一些简单的Javascript,当弹出窗口打开时,从服务器下载必要的文件,但这似乎有点过分了。我的2美分只是使用window.open,并使用查询变量告诉服务器要渲染什么。但是,如果你是一个javascript大师,那么一定要有想象力