Как я могу передать детали viewmodel из двух таблиц в представление в mvc5?
Во-первых, я хочу знать, использую ли я идентификатор при проектировании моей viewmodel?Я имею в виду, что EF использует свой встроенный идентификатор или мы должны сопоставить наш идентификатор, который получаем от пользователя, с этим идентификатором??
во-вторых , я хочу передать пользователю, что на первой странице введите свой студенческий билет, и страница перейдет на следующую страницу, показывающую студента с его оценками, например, в виде сетки.
Что я уже пробовал:
public class Course { [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int CourseId { get; set; } public string Title { get; set; } public int Credits { get; set; } [Range(minimum:0,maximum:20)] public int Grade { get; set; } [Required] [Range(minimum: 0.5, maximum: 4)] public int Unit { get; set; } public virtual ICollection<Student> Students { get; set; } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Models { public class Student { public Student() : base() { } [Key] [Required] public int stID { get; set; } [Required] [StringLength(maximumLength:50,MinimumLength =2)] public string FirstName { get; set; } [Required] [StringLength(maximumLength: 50, MinimumLength = 2)] public string LastName { get; set; } [Required] public string Department { get; set; } [EmailAddress] [Required] public string EmailId { get; set; } public string Gender { get; set; } [Required] public DateTime? DOB { get; set; } public DateTime DateCreated { set { value = DateTime.Now; } } public string Address { get; set; } public string City { get; set; } public string State { get; set; } [Required] public string Username { get; set; } [Required] public string Password { get; set; } public virtual ICollection<Course> Courses { get; set; } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace ViewModel { public class StudentGradesVM { [Required] [Key] public int stID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Title { get; set; } [Key] public int CourseId { get; set; } public int Grade { get; set; } } }
[HttpGet] public ActionResult RedirectStudent(int id) { if(ModelState.IsValid) { return RedirectToAction("Results","StudentResults",new { id = id }); } return View(HttpNotFound(id.ToString())); }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Models; namespace SchoolApp.Controllers { public class StudentResultsController : Controller { // GET: StudentResults public ActionResult Results(ViewModel.StudentGradesVM model) { if (ModelState.IsValid) { Student st = new Student { FirstName = model.FirstName, LastName = model.LastName, }; Course crse = new Course { CourseId = model.CourseId, Grade = model.Grade, Title = model.Title, }; } } return View(); } } }