我正在尝试将数据从客户端发送到服务器端(asp.net c#),如果你真的想知道,我想发送window.name
属性 。
首先我想到有一个asp:HiddenField
并且在OnSubmit
事件上有一些JS在隐藏字段中写入值。唯一的问题是我只能从PreLoad
事件到PreRenderComplete
事件访问隐藏字段值(根据this)。我正在处理的项目在OnInit
事件中有很多代码,不幸的是我无法移动它,我需要在这里使用window.name
值。
我拥有的其他想法是添加自定义HTTP标头windowId
或OnSubmit
事件有一个JS,它将参数附加到document.location.href
。
我设法用XMLHttpRequest
setRequestHeader
写了JS的标题,但是,我的实现可能做错了,这会产生2个请求,第一个一个是正常的,预期的一个(单击按钮/链接...),第二个来自XMLHttpRequest
。我发现这种行为非常不自然。 您是否有任何吸烟? (请参阅下面的代码段)。 我不知道如何使用AJAX。
var oReq = new window.XMLHttpRequest;
oReq.open('POST', document.location, false);
oReq.setRequestHeader("windowId", window.name);
oReq.send(null);
对于OnSubmit
钩子的想法,我没有花太多时间在它上面,但我想我必须在我的windowId
参数附加它的值之前附加#字符,以便页面不会重新加载。我可能错了。无论如何,我必须在获取值后从URL中删除它,以便用户看不到令人讨厌的URL。 你有任何吸烟吗?
好的,你有什么想法?
感谢您阅读我的所有诽谤,并提前感谢您的答案。
答案 0 :(得分:1)
我会推荐<asp:HiddenField />
(例如,<asp:HiddenField ID="hfWindowName" runat="server" />
。在OnInit
中,您仍然可以使用Request.Form
访问其值:
string windowName = Request.Form(hfWindowName.UniqueID);