مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

iran

عضویت از 1394/01/31

استفاده از یک CookieHelper در یک view

  • پنجشنبه 3 اسفند 1396
  • 13:59
تشکر میکنم

سلام

من کلاس زیر را تعریف کرده ام

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هم بتوانم استفاده کنم

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • پنجشنبه 3 اسفند 1396
  • 15:48

به این صورت عمل کنید: 

@ViewContext.RequestContext.HttpContext.GetCookieValue("post");

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)