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:
- public class CalificacionyTareaViewModel
- {
-
- public Calificaciones Calificaciones { get; set; }
-
-
- public string StatusMessage { get; set; }
-
- public IEnumerable TareasCollection { get; set; }
-
- public IEnumerable EstudiantesCollection { get; set; }
-
-
-
-
- }
This is the Controller Code:
- public async Task Create()
- {
-
-
- var claimsIdentity = (ClaimsIdentity)this.User.Identity;
-
- var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier);
-
- Profesores Prof = await _db.Profesores.Where(p => p.UserId == claim.Value).FirstOrDefaultAsync();
-
-
-
- CalificacionyTareaViewModel model = new CalificacionyTareaViewModel()
- {
-
-
- Calificaciones = new Models.Calificaciones(),
-
- TareasCollection = await _db.Tareas.Where(u => u.Prof.UserId == claim.Value).ToListAsync(),
-
- EstudiantesCollection = await _db.Estudiantes.Where(c => c.ClaseId == Prof.ClaseId).ToListAsync()
-
-
-
-
-
-
-
- };
-
-
-
- return View(model);
- }
-
- [HttpPost]
- [ValidateAntiForgeryToken]
-
-
- public async Task Create(CalificacionyTareaViewModel model)
- {
- var claimsIdentity = (ClaimsIdentity)this.User.Identity;
-
- var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier);
- Profesores Prof = await _db.Profesores.Where(p => p.UserId == claim.Value).FirstOrDefaultAsync();
-
- if (ModelState.IsValid)
- {
- _db.Calificaciones.Add(model.Calificaciones);
-
- await _db.SaveChangesAsync();
- return RedirectToAction(nameof(Index));
-
- }
-
- CalificacionyTareaViewModel modelVM = new CalificacionyTareaViewModel()
- {
- Calificaciones = new Models.Calificaciones(),
-
- TareasCollection = await _db.Tareas.ToListAsync(),
-
- EstudiantesCollection = await _db.Estudiantes.ToListAsync(),
-
- StatusMessage = StatusMessage
- };
-
- return View(modelVM);
- }
This is the view code:
- @model LMS.Models.ViewModels.CalificacionyTareaViewModel
- @using LMS.Extensions
-
- @{
- ViewData["Title"] = "Create";
-
- Layout = "~/Views/Shared/_Layout.cshtml";
- }
-
- <br />
-
- <h2 class="text-info"> Crear Calificación</h2>
-
- <br />
- @*<partial name="_StatusMessage" model="Model.StatusMessage" />*@
-
- <form method="post" asp-action="Create">
- <div class="border backgroundWhite">
-
- <div asp-validation-summary="ModelOnly" class="text-danger">
-
-
- </div>
-
-
- <div class="form-group row">
-
- <div class="col-3">
-
- <label asp-for="Calificaciones.TareaId" class="col-form-label"></label>
-
-
- </div>
-
- <div class="col-5">
- @Html.DropDownListFor(model => model.Calificaciones.TareaId, new SelectList(Model.TareasCollection, "Id", "NombreTarea"), "Select")
-
- </div>
-
-
- </div>
-
- <div class="form-group row">
-
- <div class="col-3">
-
- <label asp-for="Calificaciones.EstudianteId" class="col-form-label"></label>
-
-
- </div>
-
- <div class="col-5">
- @Html.DropDownListFor(model => model.Calificaciones.EstudianteId, new SelectList(Model.EstudiantesCollection, "Id", "NombreEstudiante"), "Select")
-
- </div>
-
-
- </div>
-
- <div class="form-group row">
-
- <div class="col-3">
-
- <label asp-for="Calificaciones.Nota" class="col-form-label"></label>
- </div>
-
- <div class="col-5">
-
- <input asp-for="Calificaciones.Nota" class="form-control" />
- </div>
-
- <span asp-validation-for="Calificaciones.Nota" class="text-danger"></span>
- </div>
-
-
-
-
- <div class="form-group row">
-
- <div class="col-5 offset-2">
-
- <partial name="_CreateAndBackToListButton" />
-
- </div>
-
- </div>
-
- </div>
-
- </form>