سلام
من کلاس زیر را تعریف کرده ام
using System; using System.Web; namespace WebApplication10.Helpers { public static class CookieHelper { public static void AddCookie(this HttpContextBase httpContextBase, string cookieName, string value) { httpContextBase.AddCookie(cookieName, value, DateTime.Now.AddDays(30)); } public static void RemoveCookie(this HttpContextBase httpContextBase, string cookieName) { var cookie = new HttpCookie(cookieName) { Expires = DateTime.Now.AddDays(-1) }; httpContextBase.Response.Cookies.Set(cookie); } public static void UpdateCookie(this HttpContextBase httpContextBase, string cookieName, string value, bool httpOnly = false) { var cookie = new HttpCookie(cookieName) { Value = httpContextBase.Server.UrlEncode(value), HttpOnly = httpOnly }; httpContextBase.Response.Cookies.Set(cookie); } public static void AddCookie(this HttpContextBase httpContextBase, string cookieName, string value, DateTime expires, bool httpOnly = false) { var cookie = new HttpCookie(cookieName) { Expires = expires, Value = httpContextBase.Server.UrlEncode(value),// For Cookies and Unicode characters HttpOnly = httpOnly }; httpContextBase.Response.Cookies.Add(cookie); } public static string GetCookieValue(this HttpContextBase httpContext, string cookieName) { var cookie = httpContext.Request.Cookies[cookieName]; if (cookie == null) return string.Empty; //cookie doesn't exist // For Cookies and Unicode characters return httpContext.Server.UrlDecode(cookie.Value); } } }
و در کنترلر هم کد زیر را نوشته ام
public ActionResult Index() { var cook = "asp"; HttpContext.AddCookie("post",cook.Protect("test"), DateTime.Now.AddSeconds(45)); var cook1 = HttpContext.GetCookieValue("post"); return View(); }
که درست کار میکند
اما وقتی در view می خواهم کد زیر را بنویسم
@{ ViewBag.Title = "Home Page"; } <div class="row"> <div class="col-md-4"> <h2>Getting started</h2> <p> cookie Value:@(HttpContext.GetCookieValue("post")) </p> </div> </div>
GetCookieValue را نمیشناسد
کدهای کلاس را باید چگونه تغییر بدهم تا در viewهم بتوانم استفاده کنم
به این صورت عمل کنید:
@ViewContext.RequestContext.HttpContext.GetCookieValue("post");
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)