如何将值从一个视图传递到另一个视图
本文关键字:视图 一个 另一个 | 更新日期: 2023-09-27 18:34:22
我对使用 MVC 控制器 ASP.NET 非常陌生...这就是我的场景。正在开发一个在线录取系统,学生来填写他们所需的记录以处理入学。我有不同的班级,其中包含有关学生的特定信息。我的学生班是:
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<Enrollment> Enrollments { get; set; }
}
我有另一个名为"注册"的课程,用户在其中输入所有课程以及成绩
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
}
}
和不同的更多类。我有一个名为注册的控制器,我将在其中为每个类创建视图。
所以在我的第一个视图中,在保存记录后,它需要所有学生的详细信息。当用户单击下一步时,我想将学生类的 ID 号传递到我的下一个视图,即注册视图,并将记录与学生班级的 ID 号一起保存,该 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">