我在第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 +'”
我错过了什么吗?
答案 0 :(得分:1)
您正在混合使用javascript和服务器端代码,以便javascript不会按照您的预期进行评估。
在呈现页面时,服务器端会话变量实际上设置为'+ selectedCarNoideId +'
。在这种情况下,Javascript无法设置会话值。
虽然为什么你要向显示屏1026收到警报信息,但任何人都可以猜测 - BannerNoideID
会话变量是否也在其他地方设置?
如果您尝试在服务器上的会话中使用Javascript保存变量生成的客户端,则需要提交。
一种方法是创建一个简单的MVC控制器(默认情况下,WebAPI是无会话的),然后使用Ajax或表单发布值给它。
或者,您可以将QueryString上的id传递给下一页或类似的东西 - 这种方法可能是最简单的。
在不了解您的设置,工作流程和业务逻辑的情况下,我无法提出更多建议。