Oddinx Zaer

Oddinx Zaer

  • 2k
  • 2
  • 167

How to insert multiple data in a table?

Feb 7 2021 3:31 AM
Hello, I'm learning asp.net. I have an application , where an user can create assignments for his students. But , I want to insert multiple data, using specific parameters. For example, I want to make an assignment for all the students of a specific course, the problem is , I don't want to insert the data , one by one. 
 
This is the viewmodel:
 
  1. public class CalificacionyTareaViewModel  
  2.    {  
  3.   
  4.        public Calificaciones Calificaciones { getset; }  
  5.   
  6.   
  7.        public string StatusMessage { getset; }  
  8.   
  9.        public IEnumerable TareasCollection { getset; }  
  10.   
  11.        public IEnumerable EstudiantesCollection { getset; }  
  12.   
  13.       
  14.   
  15.   
  16.    }  
 
 
 
This is the Controller Code:
 
  1. public async Task Create()  
  2. {  
  3.     
  4.   
  5.     var claimsIdentity = (ClaimsIdentity)this.User.Identity;  
  6.   
  7.     var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier);  
  8.   
  9.     Profesores Prof = await _db.Profesores.Where(p => p.UserId == claim.Value).FirstOrDefaultAsync();  
  10.   
  11.   
  12.   
  13.     CalificacionyTareaViewModel model = new CalificacionyTareaViewModel()  
  14.     {  
  15.         
  16.   
  17.         Calificaciones = new Models.Calificaciones(),  
  18.   
  19.         TareasCollection = await _db.Tareas.Where(u => u.Prof.UserId == claim.Value).ToListAsync(),  
  20.   
  21.         EstudiantesCollection = await _db.Estudiantes.Where(c => c.ClaseId == Prof.ClaseId).ToListAsync()  
  22.   
  23.   
  24.       
  25.   
  26.   
  27.   
  28.   
  29.     };  
  30.   
  31.   
  32.   
  33.     return View(model);  
  34. }  
  35.   
  36. [HttpPost]  
  37. [ValidateAntiForgeryToken]  
  38.   
  39.   
  40. public async Task Create(CalificacionyTareaViewModel model)  
  41. {  
  42.     var claimsIdentity = (ClaimsIdentity)this.User.Identity;  
  43.   
  44.     var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier);  
  45.     Profesores Prof = await _db.Profesores.Where(p => p.UserId == claim.Value).FirstOrDefaultAsync();  
  46.   
  47.     if (ModelState.IsValid)  
  48.     {  
  49.                 _db.Calificaciones.Add(model.Calificaciones);  
  50.   
  51.                 await _db.SaveChangesAsync();  

  52.             return RedirectToAction(nameof(Index));  
  53.         
  54.     }  
  55.   
  56.     CalificacionyTareaViewModel modelVM = new CalificacionyTareaViewModel()  
  57.     {  
  58.            Calificaciones = new Models.Calificaciones(),  
  59.   
  60.         TareasCollection = await _db.Tareas.ToListAsync(),  
  61.   
  62.         EstudiantesCollection = await _db.Estudiantes.ToListAsync(),  
  63.   
  64.         StatusMessage = StatusMessage  
  65.     };  
  66.   
  67.     return View(modelVM);  
  68. }  
 
 
 
 
 This is the view code:
 
  1. @model LMS.Models.ViewModels.CalificacionyTareaViewModel  
  2. @using LMS.Extensions  
  3.   
  4. @{  
  5.     ViewData["Title"] = "Create";  
  6.   
  7.     Layout = "~/Views/Shared/_Layout.cshtml";  
  8. }  
  9.   
  10. <br />  
  11.   
  12. <h2 class="text-info"> Crear Calificación</h2>  
  13.   
  14. <br />  
  15. @*<partial name="_StatusMessage" model="Model.StatusMessage" />*@  
  16.   
  17. <form method="post" asp-action="Create">  
  18.     <div class="border backgroundWhite">  
  19.   
  20.         <div asp-validation-summary="ModelOnly" class="text-danger">  
  21.   
  22.   
  23.         </div>  
  24.   
  25.   
  26.         <div class="form-group row">  
  27.   
  28.             <div class="col-3">  
  29.   
  30.                 <label asp-for="Calificaciones.TareaId" class="col-form-label"></label>  
  31.   
  32.   
  33.             </div>  
  34.   
  35.             <div class="col-5">  
  36.                 @Html.DropDownListFor(model => model.Calificaciones.TareaId, new SelectList(Model.TareasCollection, "Id""NombreTarea"), "Select")  
  37.   
  38.             </div>  
  39.   
  40.   
  41.         </div>  
  42.   
  43.         <div class="form-group row">  
  44.   
  45.             <div class="col-3">  
  46.   
  47.                 <label asp-for="Calificaciones.EstudianteId" class="col-form-label"></label>  
  48.   
  49.   
  50.             </div>  
  51.   
  52.             <div class="col-5">  
  53.                 @Html.DropDownListFor(model => model.Calificaciones.EstudianteId, new SelectList(Model.EstudiantesCollection, "Id""NombreEstudiante"), "Select")  
  54.   
  55.             </div>  
  56.   
  57.   
  58.         </div>  
  59.   
  60.         <div class="form-group row">  
  61.   
  62.             <div class="col-3">  
  63.   
  64.                 <label asp-for="Calificaciones.Nota" class="col-form-label"></label>  
  65.             </div>  
  66.   
  67.             <div class="col-5">  
  68.   
  69.                 <input asp-for="Calificaciones.Nota" class="form-control" />  
  70.             </div>  
  71.   
  72.             <span asp-validation-for="Calificaciones.Nota" class="text-danger"></span>  
  73.         </div>  
  74.   
  75.   
  76.   
  77.   
  78.         <div class="form-group row">  
  79.   
  80.             <div class="col-5 offset-2">  
  81.   
  82.                 <partial name="_CreateAndBackToListButton" />  
  83.   
  84.             </div>  
  85.   
  86.         </div>  
  87.   
  88.     </div>  
  89.   
  90. </form>  
 

Answers (1)