我是非常新的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框架并不太好。
答案 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;