【问题标题】:Set Session value using Javascript and retrieving the same using razor umbraco使用 Javascript 设置会话值并使用 razor umbraco 检索相同的值
【发布时间】:2015-10-13 20:26:26
【问题描述】:

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

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

<script type="text/javascript">

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

</script>

现在使用以下代码在其他页面(脚本文件 .chtml)上检索会话值。

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

在第 1 页警报弹出窗口中显示“1026”作为会话值

但在第 2 页标记显示以下值作为会话的输出。

"Session-:'+ selectedCarNoideId +'"

我错过了什么吗?

【问题讨论】:

    标签: javascript razor umbraco umbraco6


    【解决方案1】:

    您将 javascript 和服务器端代码混合在一起,导致 javascript 未按预期进行评估。

    在呈现页面时,服务器端会话变量实际上被设置为'+ selectedCarNoideId +'。在这种情况下,Javascript 没有做任何事情来设置会话值。

    尽管有人猜测为什么您会收到显示 1026 的警报消息 - BannerNoideID 会话变量是否也在其他地方设置?

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

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

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

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

    【讨论】:

    • 那么你能推荐同样的解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    相关资源
    最近更新 更多