Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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 在MVC中加载视图之前设置cookie值?_Asp.net Mvc_Asp.net Mvc 4_Cookies - Fatal编程技术网

Asp.net mvc 在MVC中加载视图之前设置cookie值?

Asp.net mvc 在MVC中加载视图之前设置cookie值?,asp.net-mvc,asp.net-mvc-4,cookies,Asp.net Mvc,Asp.net Mvc 4,Cookies,我需要在调用视图之前设置cookie值。否则,我必须刷新页面以获取视图中的cookie值。这里的问题是cookie的值将进入控制器 [HttpGet] [Route("Abstract/{meetingCode}")] [AllowAnonymous] public ActionResult Index(string meetingCode) { var meetingAbstract = new MeetingAbstract(); meetingAbstract.Meeting = _a

我需要在调用视图之前设置cookie值。否则,我必须刷新页面以获取视图中的cookie值。这里的问题是cookie的值将进入控制器

[HttpGet]
[Route("Abstract/{meetingCode}")]
[AllowAnonymous]
public ActionResult Index(string meetingCode)
{
 var meetingAbstract = new MeetingAbstract();
 meetingAbstract.Meeting = _abstractContext.GetMeetingWithMeetingCode(meetingCode);
 if (meetingAbstract.Meeting != null)
 {
   var cookie = new HttpCookie("_culture");
   cookie.Value = meetingAbstract.Meeting.language.language_locale_code;//"en-US"; 
   cookie.Expires = DateTime.Now.AddDays(365);
   cookie.Path = "/";
   this.ControllerContext.HttpContext.Response.Cookies.Add(cookie);
...

没有再次刷新页面以设置cookie值的其他方法吗?

cookie有一些特殊的行为,我的意思是您在响应流中创建它们,以发送到客户端,但在从客户端发送之前,它们在请求流中不可用

我的意思是,你不能访问cookie,除非它是从客户端发送的

无论如何,为什么需要刷新页面才能访问刚刚创建的cookie?使用同一个变量不是更容易吗

[HttpGet]
[Route("Abstract/{meetingCode}")]
[AllowAnonymous]
public ActionResult Index(string meetingCode)
{
 var meetingAbstract = new MeetingAbstract();
 meetingAbstract.Meeting = _abstractContext.GetMeetingWithMeetingCode(meetingCode);
 var cookie;
 if (meetingAbstract.Meeting != null)
 {
   cookie = new HttpCookie("_culture");
   cookie.Value = meetingAbstract.Meeting.language.language_locale_code;//"en-US"; 
   cookie.Expires = DateTime.Now.AddDays(365);
   cookie.Path = "/";
   this.ControllerContext.HttpContext.Response.Cookies.Add(cookie);
 } else {
    cookie = this.ControllerContext.HttpContext.Request.Cookies["_culture"];
 }
...