在MVC控制器中检索Cookie

Retrieve Cookie in MVC Controller

本文关键字:检索 Cookie 控制器 MVC      更新时间:2023-09-26

我创建了一个在document.ready

下启动的JavaScript函数
function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
    var expires = "expires=" + d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}

当我试图从MVC控制器检索这个cookie…

HttpContext.Request.Cookies["cname"].Value 

我得到一个空值并显示错误。我如何得到这个cookie的值?

更新代码。不知道为什么它突然工作。我不记得我修改过任何代码。

<script type="text/javascript" language="javascript">
$(document).ready(function () {
        setCookie('cname','computername',999);
});

控制器

var computername=HttpContext.Request.Cookies["cname"].Value
脚本文件

function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;

}

你的代码工作得很好,但我想你忘记在scripts section内的视图中编写javascript代码

@section scripts
{
   <script>
       $(document).ready(function () {
           setCookie("test", "test", 10);
       });
       function setCookie(cname, cvalue, exdays) {
           var d = new Date();
           d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
           var expires = "expires=" + d.toUTCString();
           document.cookie = cname + "=" + cvalue + "; " + expires;
       }
</script> 
}