这似乎是一个奇怪的问题,但我确实认为这应该是可能的。
这是我想介绍的整个背景,以便您更清楚地了解我想要实现的目标。
我有一个我的项目使用的框架 dll 库。在库中,我嵌入了一个 .js 文件(我们称之为 b.js),它创建了一个 javascript 对象(bjobj),其中包含用于我所有冗余 js 所需功能的 api。
类库还包含一个类(我们称之为 bpage),它扩展了 system.web.ui.page 类并提供了额外的功能。
在 bpage 中,我创建了一个包含 Dictionary 的属性,并允许扩展 bpage 的页面将结构、可为空的结构和字符串添加到字典中。
将值添加到字典后,开发人员现在可以通过 bjobj 对象通过 api 方法访问 javascript 中的值。
我的 bpage 创建 json 字符串并使用 clientscript.register... 方法将其发送到 bjobj。
不使用隐藏变量,解析时浏览器会自动将 json 字符串识别为 json 对象。
这样做消除了在页面上使用隐藏变量的需要。
整个技术的一个大缺点是,对浏览器上的变量所做的更改无法在服务器上检索,因为一切都发生在框架 dll 中。
我现在需要一种机制,使用它不需要对扩展 bpage 的页面进行任何更改,但是从我的框架 cs 代码和 js 代码中,我可以自动将在 json 对象中所做的更改返回到服务器上。
为了实现预期的功能,我目前似乎需要两个功能。
首先,我的 bjobj 需要能够自动捕获任何回发事件,以便它可以在回发开始之前对 json 对象进行字符串化。
其次,必须有某种机制可以在不使用隐藏字段的情况下将字符串化的 json 发送回服务器,以便我的 bpage 可以捕获字符串并对其进行反序列化。
请提供您对我正在尝试的技术的见解。我的目标是确保我的代码库看起来更干净并提高开发速度。