如何将值从一个视图传递到另一个视图

我是一个非常新的ASP.NET使用MVC控制器…所以这是我的场景。开发一个在线入学系统,学生来填写他们所需的记录,以便进行处理。我有不同的类,其中包含有关我的学生class是:

public class Student { public int ID { get; set; } [Required] public string NAME { get; set; } [Required] public string FIRSTNAME { get; set; } [Required] public string LASTNAME { get; set; } public virtual ICollection Enrollments { get; set; } } 

我有另一个名为Enrollments的课程,其中用户输入所有课程以及成绩

 public class Enrollment { public int EnrollmentID { get; set; } public int CourseID { get; set; } public int StudentID { get; set; } public Grade Grade { get; set; } public virtual Student Student { get; set; } public virtual Course Course { get; set; } } public enum Grade { A,B,C,D,E,F } } 

和更多不同的类。我有一个名为Registration的CONTROLLER,我将为每个类创建视图。

因此,在我的第一个视图中,在保存记录之后获取所有学生详细信息。 当用户点击下一步时,我想将学生class的ID号传递给我的下一个视图,即注册视图,并保存记录以及在注册课程中充当外键的学生class级的ID号和数据库。

一直在努力2实现这一点,但没有成功。我将欣赏一个简单的例子来演示如何实现这一点,因为我最近开始使用ASP.NET时使用mvc框架并不太好。

首先让我们说清楚这是MVC而不是Web表单。 在MVC中,流程是这样的

  View ----> Controller----->Model then back to controller and so on in usual cases. 

现在您可能想要做的是将第一个视图中的表单中的值(此处为ID)传递给另一个视图,这应该是这样做的。

比如说。 存储ID的文本框名为“tb1”,然后在控制器中写入以下代码

  int id = (Request.Form["tb1"]).toString(); //now we'll store this id in a ViewState varibale like so ViewData["id"] = id; //don't worry about the data type of ViewData["id"], it would adapt automatically 

然后在适当的重定向之后,即从控制器返回第二个视图,只需在任何需要的位置访问此ViewState变量:

  @ViewData["id"] 

请注意,这是Razor语法,您的视图需要在.cshtml页面而不是.aspx页面中

你可以使用ViewBag.MyProp =“XYZ”; 在我们的视图中,您可以将其检索为:

var name =“@ ViewBag.MyProp”