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";
- }
class
="text-info"> Crear Calificación
- @*
"_StatusMessage" model="Model.StatusMessage" />*@ - asp-action="Create">
- class="border backgroundWhite">"ModelOnly" class="text-danger">class="form-group row">class="col-3">
- ="Calificaciones.TareaId" class="col-form-label">
class="col-5">- @Html.DropDownListFor(model => model.Calificaciones.TareaId, new SelectList(Model.TareasCollection, "Id", "NombreTarea"), "Select")
class="form-group row">class="col-3">- ="Calificaciones.EstudianteId" class="col-form-label">
class="col-5">- @Html.DropDownListFor(model => model.Calificaciones.EstudianteId, new SelectList(Model.EstudiantesCollection, "Id", "NombreEstudiante"), "Select")
class="form-group row">class="col-3">- ="Calificaciones.Nota" class="col-form-label">
class="col-5">- for="Calificaciones.Nota" class="form-control" />
- for="Calificaciones.Nota" class="text-danger">
class="form-group row">class="col-5 offset-2">"_CreateAndBackToListButton" />
Sachin SinghPosted Feb 7, 2021, 7:13 AM