1

当用户注销并希望在登录页面中获取该用户登录 ID 以填充登录 ID 文本框时,我创建了具有用户登录 ID 的 cookie。

但我没有在登录页面 javascript 函数中获取 cookie 值。

我的logout动作homecontroller是这样的:

public ActionResult Logout()
{  
    string loginId = SessionManager.UserloginId;      
    FormsAuthentication.SignOut();  
    Session.clear();  
    Session.Abandon();  
    HttpCookie cookie = new HttpCookie("UserLoginId");  
    cookie.value = loginId;  
    Response.Cookies.Add(cookie);
    return RedirectToActionPermanent("Index");  
}

在 Index.cshtml 页面中,我的 javascript 代码是这样的:

<script type="text/javascript">
 var jcookie = '@Request.Cookies["UserLoginId"].Value';   
$("#LogInId").val() = jcookie;
</script>

但我没有得到存储在 cookie 中的 loginId,请帮我解决这个问题。

4

2 回答 2

1

尝试这个:-

<Script type="test/javascript">
 var jcookie = '@Request.Cookies["UserLoginId"].Value';   
$("#loginId").val(jcookie)
</Script>
于 2013-10-22T06:17:51.150 回答
1

如果您需要使用 jQuery 设置值,请.val(value)使用$("#LogInId").val() = jcookie;. 因此,将您的代码更改为

<script type="text/javascript">
    var jcookie = '@HttpContext.Current.Request.Cookies["UserLoginId"].Value';   
    $("#LogInId").val(jcookie);
</script>

另外,使用@HttpContext.Current.Request代替@Request

编辑:根据评论

can u please tell me now how to set the value of this UserLoginId value to = ""(I mean blank) after i assign value to $("#LogInId").val(jcookie);?

如果您想将UserLoginIdcookie 值设置为空白,为什么要将其保存在 cookie 中。TempData您可以使用like轻松做到这一点

在控制器中

public ActionResult Logout()
{  
    string loginId = SessionManager.UserloginId;      
    FormsAuthentication.SignOut();  
    Session.clear();  
    Session.Abandon();  

    //Used here
    TempData["UserLoginId"] = loginId;  

    return RedirectToActionPermanent("Index");  
}

在脚本中

<script type="text/javascript">
    var jcookie = '@TempData["UserLoginId"]';   
    $("#LogInId").val(jcookie);
</script>

TempData使用后值将被清除

于 2013-10-22T06:23:11.067 回答