[英]How can I display data from multiple models in one view?
我创建了一个MVCApplication1,其中有两个这样的模型类,
StudentPersonalInfo.cs
public class StudentPersonalInfo
{
public string StudentFirstName { get; set; }
public string StudentLastName { get; set; }
public int Age { get; set; }
public string BloodGroup { get; set; }
public string Address { get; set; }
}
第二个是
EducationQualification.cs
public class EducationQualification
{
public string Graduation { get; set; }
public intGrad_Marks_obtain { get; set; }
public DateTimeGrad_passing_year { get; set; }
public stringPostGraduation { get; set; }
public intPG_Marks_obtain { get; set; }
public DateTimePG_passing_year { get; set; }
}
我想显示两个模型的数据都在一个视图页面中,并且在创建这两个模型后我不知道下一步要做什么。
谁能帮我这个?
您可以根据模型创建对象:
StudentPersonalInfo myStudent = new StudentPersonalInfo();
EducationQualification myQualification = new EducationQualification();
您可以更具体吗? 您可以做几件事,也可以用许多其他方式来操纵它们。
public class StudentPersonalInfo
{
public string StudentFirstName { get; set; }
public string StudentLastName { get; set; }
public int Age { get; set; }
public string BloodGroup { get; set; }
public string Address { get; set; }
}
public class EducationQualification
{
public string Graduation { get; set; }
public int Grad_Marks_obtain { get; set; }
public DateTime Grad_passing_year { get; set; }
public string PostGraduation { get; set; }
public int PG_Marks_obtain { get; set; }
public DateTime PG_passing_year { get; set; }
}
public class StudentInfo
{
public StudentPersonalInfo PersonalInfo {get;set;}
public EducationQualification EducationalQualification {get;set;}
}
现在,在您的视图中将StudentInfo类用作模型。 在视图中将两个聚合类都称为:
@Html.TextBoxFor(m=>m.StudentPersonalinfo.StudentFirstname)
更新资料
学生模型
public class StudentPersonalInfo
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string StudentFirstName { get; set; }
public string StudentLastName { get; set; }
public int Age { get; set; }
public string BloodGroup { get; set; }
public string Address { get; set; }
}
public class EducationQualification
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Graduation { get; set; }
public int Grad_Marks_obtain { get; set; }
public DateTime Grad_passing_year { get; set; }
public string PostGraduation { get; set; }
public int PG_Marks_obtain { get; set; }
public DateTime PG_passing_year { get; set; }
}
public class StudentInfo
{
public StudentPersonalInfo PersonalInfo { get; set; }
public EducationQualification EducationalQualification { get; set; }
}
StudentsDbContext.cs
public class StudentDbContext:DbContext
{
public DbSet<StudentPersonalInfo> StudentPersonalInfos { get; set; }
public DbSet<EducationQualification> EducationQualifications { get; set; }
}
控制者
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(StudentInfo model)
{
var personalInfo = model.PersonalInfo;
var educationQualification = model.EducationalQualification;
using (var context = new StudentDbContext())
{
context.StudentPersonalInfos.Add(personalInfo);
context.EducationQualifications.Add(educationQualification);
context.SaveChanges();
}
return View();
}
视图
@using (Html.BeginForm())
{
<div style="width:500px;margin:auto;">
<fieldset>
<legend>Student Personal Info</legend>
<p>Student First Name: @Html.TextBoxFor(m => m.PersonalInfo.StudentFirstName)</p>
<p>Student Last Name: @Html.TextBoxFor(m => m.PersonalInfo.StudentLastName)</p>
<p>Age: @Html.TextBoxFor(m => m.PersonalInfo.Age)</p>
<p>Blood Group: @Html.TextBoxFor(m => m.PersonalInfo.BloodGroup)</p>
<p>Address: @Html.TextAreaFor(m => m.PersonalInfo.Address)</p>
</fieldset>
<fieldset>
<legend>Educational Qualification</legend>
<p>Graduation: @Html.TextBoxFor(m => m.EducationalQualification.Graduation)</p>
<p>Grad. Marks Obtained: @Html.TextBoxFor(m => m.EducationalQualification.Grad_Marks_obtain)</p>
<p>Grad. Passing Year: @Html.TextBoxFor(m => m.EducationalQualification.Grad_passing_year)</p>
<p>PG: @Html.TextBoxFor(m => m.EducationalQualification.PostGraduation)</p>
<p>PG Marks Obtained: @Html.TextBoxFor(m => m.EducationalQualification.PG_Marks_obtain)</p>
<p>PG Passing Year: @Html.TextBoxFor(m => m.EducationalQualification.PG_passing_year)</p>
</fieldset>
<input type="submit" value="Save"/>
</div>
}
您可以根据自己的喜好自由进行验证和添加样式。 该演示仅供参考。
这是一个基于您的类的示例项目,用于演示:
https://github.com/sunnykumar08/public
希望能帮助到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.