Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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 TempData-“临时数据”;对象引用未设置为对象的实例;刷新页面时_Asp.net_Asp.net Mvc_Asp.net Core_Model View Controller_Tempdata - Fatal编程技术网

Asp.net TempData-“临时数据”;对象引用未设置为对象的实例;刷新页面时

Asp.net TempData-“临时数据”;对象引用未设置为对象的实例;刷新页面时,asp.net,asp.net-mvc,asp.net-core,model-view-controller,tempdata,Asp.net,Asp.net Mvc,Asp.net Core,Model View Controller,Tempdata,我有一个奇怪的错误。我使用tempData将值从一个控制器发送到另一个控制器。当程序运行时,它工作得非常好,我可以多次调用该函数,临时数据也可以按预期工作 如果我刷新网页,就会出现问题。我收到这个错误: object reference not set to an instance of an object 下面是我的代码,其中我向TempData添加了一个值id: public IActionResult Details(int? id) {

我有一个奇怪的错误。我使用tempData将值从一个控制器发送到另一个控制器。当程序运行时,它工作得非常好,我可以多次调用该函数,临时数据也可以按预期工作

如果我刷新网页,就会出现问题。我收到这个错误:

 object reference not set to an instance of an object
下面是我的代码,其中我向TempData添加了一个值id:

    public IActionResult Details(int? id)
        {
            TempData["ID"] = id;
        }
下面是我的代码,我在一个单独的控制器中使用TempData中的值:

   public async Task<IActionResult> Index(string SubjectName, int CourseID)
        {
          
            //professor id
            int professorID = (int)TempData["ID"];
}
公共异步任务索引(字符串SubjectName,int-CourseID)
{
//教授id
int professorID=(int)TempData[“ID”];
}
即使在刷新页面时,是否有办法保存我存储在临时数据中的值


任何提示/建议都将不胜感激。

事实证明,您实际上可以调用“keep”函数,这样您在TempData中输入的任何值都可以持续多次调用

在我的第二个控制器中,我访问TempData中的值,我只需要输入以下代码行:

     TempData.Keep("ID");
     int professorID = (int)TempData["ID"];

即使单击“刷新”,该值仍将保留在字典中。

您确定
id!=空
当你刷新时?不,我说刷新时id为空,我问如何在刷新页面时保持id中的值。我将编辑我的问题以使其更清晰。那么,这一切取决于前端(web/javascript)的制作方式。。。