如何使ASP.net会话数据可用于JavaScript方法?当我用Google搜索时,我找到了this链接。任何人都有一个更好的技巧,不使用ScriptManager?
答案 0 :(得分:3)
如果放弃ScriptManager是你的目标,暴露页面方法仍然是一个不错的选择,只需使用不依赖于ScriptManager js库的javascript。
我喜欢链接页面中提出的解决方案,但它可能过于宽泛。也许您想为要允许访问的任何/所有会话项创建强类型和受控的PageMethod。这样你就不会意外地访问某些秘密会话值。
另外,我认为您需要使用
标记PageMethodVB
WebMethod(EnableSession:=True)
C#
WebMethod(true)
因为我认为EnableSession默认情况下不启用。
答案 1 :(得分:2)
会话的目的是隐藏客户端的详细信息。听起来像你应该将它转换为使用cookie,这显然是通过javascript检索的微不足道。
答案 2 :(得分:1)
你必须以某种方式将它放入页面。使用隐藏表单字段是一种方法。使用类似你的链接的网络方法是一种更复杂的方法,它为你提供了一些ajax权力。
如果您实际上不需要从服务器更新此值,除了回发后,您可以使用隐藏的输入控件HtmlInputHidden
。
答案 3 :(得分:0)
为什么你想要呢?
答案 4 :(得分:0)
老实说,ScriptManager方法看起来很简单。滚动你自己的解决方案需要服务器端的HttpHandler和Ajax调用,在这种情况下这似乎不值得。
答案 5 :(得分:0)
我可以看到两种选择:
#2可能是ScripManager代码所包含的内容,你应该只是使用它。但是我要小心决定你想要去客户端的会话数据,我会使用白名单只返回我实际需要转到客户端的会话数据。