Отношение один ко многим ASP. NET MVC и возможность получить выбранный идентификатор - PullRequest
0 голосов
/ 07 марта 2020

Я в основном хочу получить выбранную строку в списке и иметь возможность получить идентификатор из другой таблицы. У меня есть следующие таблицы: учитель и посещаемость . Таблица учителя - это та, которая отображает список, и я хочу отобразить / показать идентификатор учителя в EditDaily Controller и иметь возможность вставить таблицу посещаемости вместе с идентификатором учителя.

Таблицы = учитель, посещаемость

Контроллер = Индекс, EditDaily

Код: Модель - Учитель

public partial class teacher
{
    public int TeacherId { get; set; }

    [StringLength(50)]
    public string Firstname { get; set; }

    [StringLength(50)]
    public string Lastname { get; set; }

    [StringLength(50)]
    public string IdNumber { get; set; }

    [StringLength(50)]
    public string Email { get; set; }

    [StringLength(50)]
    public string Course { get; set; }

    [Column(TypeName = "date")]
    public DateTime? OneDate { get; set; }

    [Column(TypeName = "date")]
    public DateTime? TwoDate { get; set; }


    public virtual ICollection<DailyAttendance> DailyAttendances { get; set; }

}

Код: Посещаемость

 public partial class DailyAttendance
{
    public int Id { get; set; }

    public int? TeacherId { get; set; }

    [StringLength(200)]
    public string Subject { get; set; }

    [StringLength(50)]
    public string Day { get; set; }

    [StringLength(50)]
    public string Firstname { get; set; }

    [StringLength(50)]
    public string Lastname { get; set; }

    [StringLength(50)]
    public string IdNumber { get; set; }

    [StringLength(50)]
    public string Email { get; set; }

    [StringLength(50)]
    public string Course { get; set; }

    [Column(TypeName = "date")]
    public DateTime? OneDate { get; set; }

    [Column(TypeName = "date")]
    public DateTime? TwoDate { get; set; }

    public virtual teacher Teacher { get; set; }
}

Контроллер:

    public ActionResult Index(string ddlcontent, DateTime? startdate, DateTime? enddate)
    {

        var list = new List<string>();
        var nameqry = from n in db.teachers
                      select n.Course;
        list.AddRange(nameqry.Distinct());
        ViewBag.ddlcontent = new SelectList(list);
        var names = from m in db.teachers
                    select m;

        var tb_teachers = db.teachers.Where(x => x.OneDate >= startdate && x.OneDate <= enddate && x.Course.Contains(ddlcontent)).ToList();

        return View(tb_teachers.ToList());
    }


     public ActionResult EditDaily()
    {
        ViewBag.TeacherId = new SelectList(db.teachers, "TeacherId", "FirstName");
        return View();
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult EditDaily([Bind(Include = "Id,TeacherId,Subject,Day")] DailyAttendance dailyy)
    {
        if (ModelState.IsValid)
        {
            //db.Entry(dailyy).State = EntityState.Modified;
            db.DailyAttendances.Add(dailyy);
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        ViewBag.AccountHolderId = new SelectList(db.teachers, "AccountHolderId", "FirstName", dailyy.TeacherId);
        return View(dailyy);
    }
...