首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用RedirectToAction后,会话变量为null

是因为重定向操作会导致HTTP请求的结束和新的HTTP请求的开始,会话状态无法跨请求保持。在ASP.NET中,会话状态是通过Session对象来管理的,而Session对象是依赖于Cookie或URL重写来实现的。当使用RedirectToAction进行重定向时,会话状态无法被传递到新的请求中,因此会话变量会变为null。

为了解决这个问题,可以使用TempData来临时存储会话变量的值,并在重定向后从TempData中获取值。TempData是一个字典对象,可以在当前请求和下一个请求之间共享数据。它的生命周期只存在于两个连续的请求之间,一旦读取数据,数据就会被删除。

下面是一个示例代码,演示如何使用TempData来解决会话变量为null的问题:

代码语言:txt
复制
// 在重定向前将会话变量存储到TempData中
TempData["myVariable"] = myValue;

// 重定向到另一个Action
return RedirectToAction("AnotherAction");

// 在另一个Action中获取会话变量的值
var myValue = TempData["myVariable"];

在上述示例中,我们将会话变量存储到TempData中,并在重定向后的另一个Action中获取该值。这样就可以在重定向后保持会话变量的值。

对于ASP.NET Core应用程序,可以使用Session对象来管理会话状态。在重定向后,会话状态仍然可用。以下是一个示例代码:

代码语言:txt
复制
// 在重定向前将会话变量存储到Session中
HttpContext.Session.SetString("myVariable", myValue);

// 重定向到另一个Action
return RedirectToAction("AnotherAction");

// 在另一个Action中获取会话变量的值
var myValue = HttpContext.Session.GetString("myVariable");

在上述示例中,我们使用HttpContext.Session来存储和获取会话变量的值。在重定向后,会话状态仍然可用。

总结起来,使用RedirectToAction后会话变量为null是因为重定向操作导致HTTP请求的结束和新的HTTP请求的开始,会话状态无法跨请求保持。为了解决这个问题,可以使用TempData或Session来临时存储会话变量的值,并在重定向后获取该值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter Dart 静态变量null的bug

Flutter还在学习中,我是以开发一个小的App来学习的,昨天做到一个需求是用户登录后用一个static的变量来缓存登录用户的信息。...变量的赋值什么的都没有问题,可是当我在另一个页面想使用这个static的变量的时候,发现它神奇的变成了null。...:flutter_study/static_value/static_value.dart' as staticB; 坑爹的地方就在这里,当你用上面两种方式导入同一个dart文件的时候,其实你得到的是使用同一份源代码的两个不同的...BuildContext context) { return new Scaffold( appBar: new AppBar( title: new Text('静态变量...flutter: staticA: 1 staticB:null flutter: staticA: 1 staticB:2 解决 这个文件就以一种方式引入 关于Flutter学习 flutter

2.8K20

hive 分区表添加字段,字段结果null

问题现象由于业务需要,添加了在hive原来的表上增加了新字段(alter table partition_test add columns(ads string); ),添加一段时间发现,新分区的数据查询正常...但是发现涉及以前的分区,新增字段的值都是null。图片开始的时候,以为是老分区文件中没有该字段的值导致的,重新跑批生成数据,发现老分区中的字段还是null。...图片问题原因新增字段,之前的分区没有同步到新的字段结构,使用的还是之前的元数据信息。而新生成的分区使用的新字段结构的元数据。...而老分区中没有新字段的元数据,所以没有取到相关值,显示null 。解决方案同步老分区的元数据字段结构。...参考命令:alter table partition_test partition(dt='a') add columns(ads string);同步老分区的元数据,即可查询到。

2.7K20
  • 对象不再使用时,为什么要赋值 null

    鉴于网上有太多关于此问题的误导,本文将通过实例,深入JVM剖析“对象不再使用时赋值null”这一操作存在的意义,供君参考。本文尽量不使用专业术语,但仍需要你对JVM有一些概念。...对比两段代码,仅仅将placeHolder赋值null就解决了GC的问题,真应该感谢“不使用的对象应手动赋值null“。...现在算是理清了“不使用的对象应手动赋值null“的原理了,一切根源都是来自于JVM的一个“bug”:代码离开变量作用域时,并不会自动切断其与堆的联系。为什么这个“bug”一直存在?...总结 希望看到这里你已经明白了“不使用的对象应手动赋值null“这句话背后的奥义。...我比较赞同《深入理解Java虚拟机》作者的观点:在需要“不使用的对象应手动赋值null“时大胆去用,但不应当对其有过多依赖,更不能当作是一个普遍规则来推广。

    52320

    Java对象不再使用时,为什么要赋值null

    本文将深入探讨为什么在Java中,当对象不再被使用时,赋值null是一个被推荐的做法。1. Java内存管理简介在讨论null赋值之前,我们先简要了解一下Java如何管理内存。...为何要将对象赋值null现在我们来解答主题问题:为何要将不再使用的对象赋值null?3.1 显式断开引用:赋值null是显式地告诉垃圾回收器这个对象不再被需要了。...因此,理解何时应该赋值null是很重要的。4.1 长生命周期的对象:对于那些生命周期较长或整个应用程序生命周期内一直存在的对象,赋值null可能没有太大意义。...4.2 局部变量:在方法的局部变量中,当变量离开作用域时,它们通常自然就会变得可回收。在这种情况下,将局部变量赋值null是不必要的。...4.3 使用后立即失效的对象:对于只在短时间内使用并且之后立即失效的对象,赋值null可能也是多余的。5.

    32710

    Java : 对象不再使用时,为什么要赋值 null

    鉴于网上有太多关于此问题的误导,本文将通过实例,深入JVM剖析“对象不再使用时赋值null”这一操作存在的意义,供君参考。本文尽量不使用专业术语,但仍需要你对JVM有一些概念。...对比两段代码,仅仅将placeHolder赋值null就解决了GC的问题,真应该感谢“不使用的对象应手动赋值null“。...现在算是理清了“不使用的对象应手动赋值null“的原理了,一切根源都是来自于JVM的一个“bug”:代码离开变量作用域时,并不会自动切断其与堆的联系。为什么这个“bug”一直存在?...总结 希望看到这里你已经明白了“不使用的对象应手动赋值null“这句话背后的奥义。...我比较赞同《深入理解Java虚拟机》作者的观点:在需要“不使用的对象应手动赋值null“时大胆去用,但不应当对其有过多依赖,更不能当作是一个普遍规则来推广。

    1.2K10

    Asp.Net MVC3.0网站统计登录认证的在线人数

    实现的大致方案如下:   1、在全局应用程序启动的时候,Application["count"]=0;初始化统计在线人数0   2、处理一个简单的Form登录认证,在登录的时候对全局变量Application...同时,在登录的时候写入Session值,设置一个有效的时间1分钟(多长时间根据需要,这里只是作为测试使用)。   ...3、在Session失效、用户登出、浏览器关闭的情况触发,全局的会话函数进行对全局变量Application["count"]进行累减1的操作。   ...= null) { FormsAuthentication.RedirectFromLoginPage(model.UserName...return RedirectToAction("Index", "Home"); } 取消当前会话,这样才会触发在上面定义的全局的Session_End函数。

    1K20

    fastJson使用toJSONString()时自动过滤掉值null

    ,在转化为json字符串时null的字段会被自动过滤掉,查询资料字后发现可以使用一些序列化的参数来处理这种情况 二、处理 JSONObject.toJSONString(result,SerializerFeature.WriteMapNullValue...,//使用单引号而不是双引号,默认为false WriteMapNullValue,//是否输出值null的字段,默认为false WriteEnumUsingToString,//Enum输出name...字段如果null,输出[],而非null WriteNullStringAsEmpty,//字符类型字段如果null,输出"",而非null WriteNullNumberAsZero,//...数值字段如果null,输出0,而非null WriteNullBooleanAsFalse,//Boolean字段如果null,输出false,而非null SkipTransientField...默认为true SortField,//按字段名称排序输出。

    7.6K00

    使用 Apollo 静态变量赋值的方法

    Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。...实际上,Apollo 仅支持直接非静态属性赋值,因此当我们有这样的需求的时候,就需要我们变通一下,通过一些小技巧,来达成我们的目的了。...以下面的ApolloConfig代码例,我们分别为非静态属性name和静态属性address赋值: @Configuration @EnableApolloConfig public class ApolloConfig...其中,我们使用@Value("${csdn.name:NONE}")非静态属性name赋值,并添加了默认值NONE,即当我们没有在 Apollo 配置中心配置该属性值的时候,Apollo 会自动将NONE...值得注意的是,上面例子中使用的方法名是自定义的,不一定非得和参数名一致,根据需要自定义即可。

    2.7K10

    踩坑:Spring静态变量构造函数注入失败(注入null)问题的解决方案

    1、案例1:Spring对静态变量的注入空 案例代码如下: @Component public class HelloWorld { /** * 错误案例:这种方式是不能给静态变量注入属性值的...}") public static String helloWorld; @PostConstruct public void init(){ // 静态变量赋值...(值从Spring IOC容器中获取的hello.world字段值) HELLO_WORLD = this.helloWorld; } } 复制代码 2、案例2:在构造函数中使用...UserService userService; public HelloWorld(){ // 这里会报空指针异常:因为 userService 的属性注入是在无参数构造函数之后,如果这里直接使用...userService ,此时该属性值null,一个null的成员变量调用sayHello()方法,NullPointException 异常是情理之中呀!

    1.3K00

    Java中当对象不再使用时,不赋值null会导致什么后果 ?

    鉴于网上有太多关于此问题的误导,本文将通过实例,深入JVM剖析“对象不再使用时赋值null”这一操作存在的意义,供君参考。本文尽量不使用专业术语,但仍需要你对JVM有一些概念。...对比两段代码,仅仅将placeHolder赋值null就解决了GC的问题,真应该感谢“不使用的对象应手动赋值null“。...现在算是理清了“不使用的对象应手动赋值null“的原理了,一切根源都是来自于JVM的一个“bug”:代码离开变量作用域时,并不会自动切断其与堆的联系。为什么这个“bug”一直存在?...总结 希望看到这里你已经明白了“不使用的对象应手动赋值null“这句话背后的奥义。...我比较赞同《深入理解Java虚拟机》作者的观点:在需要“不使用的对象应手动赋值null“时大胆去用,但不应当对其有过多依赖,更不能当作是一个普遍规则来推广。

    63520

    ASP.NET多线程下使用HttpContext.Currentnull解决方案

    前面我还提到在APM模式下的异步完成回调时,访问HttpContext.Current也会返回null,那么此时该怎么办呢? 答案有二种: 1....将HttpContext赋值给BeginXXX方法的最后一个参数(object state) 建议优先选择第二种方法,因为可以防止以后他人维护时数据成员被意外使用。...所以在异步执行的过程会就会出现HttpContext.Currentnull的情况,为了解决子线程能够得到主线程的HttpContext.Current数据,需要在异步前面就把HttpContext.Current...["TTS"];  if (ht == null)  {  ht = new Hashtable();  }  if (ht["A"] == null)  {  ht.Add("A", "A");  }...= null)  {  return "恭喜,中大奖呀";  }  else  {  return "我猜你快中奖了";  }  }

    1.5K20

    Excel导入-----导出(包含所选和全部)操作

    在做系统的时候,很多时候信息量太大,这时候就需要进行Excel表格信息的导入和导出,今天就来给大家说一下我使用Excel表格信息导入和导出的心得。      ...   这里注意,导出(所选)Excel是通过获取当下的表单的方式来导出数据的,导出是通过提交form表单实现的(原因为通过submit没有响应) 2:添加点击事件弹出来的操作界面...通过 JavaScript:使用这种技术,您可以通过简单的一行 JavaScript 来调用带有 id="identifier" 的模态框: $('#identifier').modal(options...= null && !...exportManager.ExportGradeMessagesToXlsx(gradeMessages) 是实现导出Excel方法的接口并调用方法ExportFamiliesToXlsx() 添加成员变量

    1.1K30

    Java 程序员: 对象不再使用时,为什么要赋值 null ?架构师必看!!!

    由于网上有太多关于此问题的误导,本文将通过实例,深入JVM剖析“对象不再使用时赋值null”这一操作存在的意义,供大家参考。本文尽量不使用专业术语,但仍需要你对JVM有一些概念。...对比两段代码,仅仅将placeHolder赋值null就解决了GC的问题,真应该感谢“不使用的对象应手动赋值null“。...现在算是理清了“不使用的对象应手动赋值null“的原理了,一切根源都是来自于JVM的一个“bug”:代码离开变量作用域时,并不会自动切断其与堆的联系。为什么这个“bug”一直存在?...总结 希望看到这里你已经明白了“不使用的对象应手动赋值null“这句话背后的奥义。...我比较赞同《深入理解Java虚拟机》作者的观点:在需要“不使用的对象应手动赋值null“时大胆去用,但不应当对其有过多依赖,更不能当作是一个普遍规则来推广。

    45300
    领券