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

时间:2014-12-17 01:57:23

标签: c# asp.net-mvc asp.net-mvc-4

我是非常新的ASP.NET使用MVC控制器...所以这是我的方案。开发一个在线入学系统,学生来填写他们所需的记录以进行处理。我有不同的类具有特定的关于学生的信息。我的学生班是:

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; }
}

我有另一个名为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,我将为每个类创建视图。

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

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

2 个答案:

答案 0 :(得分:4)

首先让我们说清楚这是MVC而不是网络表单。在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页面

答案 1 :(得分:0)

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

var name =&#34; @ ViewBag.MyProp&#34;