Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 Cookie添加另一个条目而不是替换现有值_Asp.net Mvc 3_Cookies_Session Cookies_Jquery Cookie - Fatal编程技术网

Asp.net mvc 3 Cookie添加另一个条目而不是替换现有值

Asp.net mvc 3 Cookie添加另一个条目而不是替换现有值,asp.net-mvc-3,cookies,session-cookies,jquery-cookie,Asp.net Mvc 3,Cookies,Session Cookies,Jquery Cookie,我使用流行的jquery cookie插件通过javascript设置会话cookie值,如下所示: function ChangeLoginUser(sel) { var selectedUser = sel.options[sel.selectedIndex].value; $.cookie("LoginUser", selectedUser); location.reload(true); //refresh } 用户从站点全局下拉框选项中选择后调用此函数 更改

我使用流行的jquery cookie插件通过javascript设置会话cookie值,如下所示:

function ChangeLoginUser(sel) {
    var selectedUser = sel.options[sel.selectedIndex].value;
    $.cookie("LoginUser", selectedUser);
    location.reload(true); //refresh
}
用户从站点全局下拉框选项中选择后调用此函数

  • 更改第1页上的值-cookie设置为CookieName=Value1
  • 转到第2页-cookie正确持久化
  • 将下拉值更改为value2-Fiddler现在显示两个同名cookie,两个值如下:

我不明白为什么会这样。我只需要保留一块这个名字的饼干。新值应替换旧值。

正常。看起来问题出在cookie路径上。每个URL都可以有一个具有相同名称的单独cookie。解决方案是将路径设置为域范围,如下所示:

$.cookie("LoginUser", selectedUser, { path: '/' });
$.cookie("LoginUser", selectedUser, { path: AppPath });
或者,如果您需要将其缩小到仅适用于您的应用程序,您可以这样做:

$.cookie("LoginUser", selectedUser, { path: '/' });
$.cookie("LoginUser", selectedUser, { path: AppPath });
在共享布局的开头可以设置AppPath

<script type="text/javascript">
    var AppPath = '@Url.Content("~/")'
</script>

var AppPath='@Url.Content(“~/”)

好的。看起来问题出在cookie路径上。每个URL都可以有一个具有相同名称的单独cookie。解决方案是将路径设置为域范围,如下所示:

$.cookie("LoginUser", selectedUser, { path: '/' });
$.cookie("LoginUser", selectedUser, { path: AppPath });
或者,如果您需要将其缩小到仅适用于您的应用程序,您可以这样做:

$.cookie("LoginUser", selectedUser, { path: '/' });
$.cookie("LoginUser", selectedUser, { path: AppPath });
在共享布局的开头可以设置AppPath

<script type="text/javascript">
    var AppPath = '@Url.Content("~/")'
</script>

var AppPath='@Url.Content(“~/”)