繁体   English   中英

如何在一个视图中显示来自多个模型的数据?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM