如何在 .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
中设置的所有临时数据
我在控制器的一个动作中引入了一个学生参数。我将此参数分配给 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