使用Javascript设置会话值并使用razor umbraco检索相同值

时间:2015-10-13 20:26:27

标签: javascript razor umbraco umbraco6

我在第1页写了下面的代码

<a Onclick="setSessionValue()" href="page2"></a>

<script type="text/javascript">

        function setSessionValue()
        {
            var selectedCarNoideId = "1026";                                
            '<%Session["BannerNoideID"] = "'+ selectedCarNoideId +'";%>'                
            alert('<%=Session["BannerNoideID"]%>');         
        }

</script>

现在使用以下代码在其他页面(Scripting File .chtml)上检索会话值。

<h2>Session-:@Session["BannerNoideID"]  </h2>;

在第1页警报中,PopUp将“1026”显示为会话值

但是在第2页中,标签显示以下值作为会话的输出。

“会话 - :'+ selectedCarNoideId +'”

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

您正在混合使用javascript和服务器端代码,以便javascript不会按照您的预期进行评估。

在呈现页面时,服务器端会话变量实际上设置为'+ selectedCarNoideId +'。在这种情况下,Javascript无法设置会话值。

虽然为什么你要向显示屏1026收到警报信息,但任何人都可以猜测 - BannerNoideID会话变量是否也在其他地方设置?

如果您尝试在服务器上的会话中使用Javascript保存变量生成的客户端,则需要提交。

一种方法是创建一个简单的MVC控制器(默认情况下,WebAPI是无会话的),然后使用Ajax或表单发布值给它。

或者,您可以将QueryString上的id传递给下一页或类似的东西 - 这种方法可能是最简单的。

在不了解您的设置,工作流程和业务逻辑的情况下,我无法提出更多建议。