如何在 .NET MVC 中访问 "properties" 的 TempData

How can I access "properties" of TempData in .NET MVC

我在控制器的一个动作中引入了一个学生参数。我将此参数分配给 TempData["student"] 并保留它,以便我可以在同一控制器的另一个操作中使用它。现在 TempData["student"] 具有 FirstName、LastName、Email 等子属性。但是由于编译器不知道这些属性,当我在另一个操作中说类似 TempData["student"].FirstName 时,它​​会抛出预期的编译器错误。我在 class 级别启动了一个新的 Student 变量,但是由于每次我从视图调用一个操作时都会访问控制器,它每次都会启动一个新变量并重置值。所以我需要使用 TempData["student"] 访问这些属性。任何帮助将不胜感激。

我为 TempData["student"] 赋值的操作

    [ActionName("NewStudentSchedule")]
    [HttpPost]
    public ActionResult NewStudentSchedule_Submit(Student student)
    {
        TempData["student"] = student;
        TempData.Keep();

        if (TempData.Count() == 0 || TempData == null)
            ViewBag.Error = true;
        else
            ViewBag.Error = false;

        return View("Close");
    }

我尝试使用

中的 TempData 值的方式和操作
    [HttpPost]
    public ActionResult StudentApplicants(List<StudentApplicant> studentApplicant)
    {
        TempData.Keep();

            Models.Student newStudent = new Models.Student();
            newStudent.FirstName = TempData["student"].FirstName;
            newStudent.LastName = TempData["student"].LastName;
           
        return View();
    }

正如我在评论中提到的,在您的 StudentApplicants 中将您的代码更改为:

var student = TempData["student"] as Student;

现在您可以使用 student 变量,它将保存在 NewStudentSchedule_Submit

中设置的所有临时数据