failure to register

Hello I am a beginner on asp.net core I use automatically generated controllers for the most part until a moment when I was generating I was able to save but for a while I have no longer been able to save when I fill out the forms and validates nothing happens here is an example of my controller and its view
"""""Controller """""""
using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

using Microsoft.AspNetCore.Mvc;

using Microsoft.AspNetCore.Mvc.Rendering;

using Microsoft.EntityFrameworkCore;

using ARTF.Entities;


namespace ARTF.Controllers

{

    public class EngagementChangesController : Controller

    {

        private readonly ArtfdbContext _context;


        public EngagementChangesController(ArtfdbContext context)

        {

            _context = context;

        }


        // GET: EngagementChanges

        public async Task<IActionResult> Index()

        {

            var artfdbContext = _context.EngagementChanges.Include(e => e.AgentEconomiqueIdAgentEconomiqueNavigation).Include(e => e.PartenairesIdPartenairesNavigation).Include(e => e.StatutsIdStatutsNavigation).Include(e => e.TransportIdTransportNavigation);

            return View(await artfdbContext.ToListAsync());

        }


        // GET: EngagementChanges/Details/5

        public async Task<IActionResult> Details(int? id)

        {

            if (id == null || _context.EngagementChanges == null)

            {

                return NotFound();

            }


            var engagementChange = await _context.EngagementChanges

                .Include(e => e.AgentEconomiqueIdAgentEconomiqueNavigation)

                .Include(e => e.PartenairesIdPartenairesNavigation)

                .Include(e => e.StatutsIdStatutsNavigation)

                .Include(e => e.TransportIdTransportNavigation)

                .FirstOrDefaultAsync(m => m.IdEngagementChange == id);

            if (engagementChange == null)

            {

                return NotFound();

            }


            return View(engagementChange);

        }


        // GET: EngagementChanges/Create

        public IActionResult Create()

        {

            ViewData["AgentEconomiqueIdAgentEconomique"] = new SelectList(_context.AgentEconomiques, "IdAgentEconomique", "IdAgentEconomique");

            ViewData["PartenairesIdPartenaires"] = new SelectList(_context.Partenaires, "IdPartenaires", "IdPartenaires");

            ViewData["StatutsIdStatuts"] = new SelectList(_context.Statuts, "IdStatuts", "IdStatuts");

            ViewData["TransportIdTransport"] = new SelectList(_context.Transports, "IdTransport", "IdTransport");

            return View();

        }


        // POST: EngagementChanges/Create

        // To protect from overposting attacks, enable the specific properties you want to bind to.

        // For more details, see http://go.microsoft.com/fwlink/?LinkId=317598.

        [HttpPost]

        [ValidateAntiForgeryToken]

        public async Task<IActionResult> Create([Bind("IdEngagementChange,NEngagement,NomImportateur,PrenomImportateur,RaisonSocialeImportateur,AdresseImportateur,RccmImporateur,ProfessionImportateur,ImmatriculationStatique,MotifE,ValeurMseLe,NDossiersDomiciliation,AApurerAvant,PourLe,OuvertLe,TransportIdTransport,AgentEconomiqueIdAgentEconomique,StatutsIdStatuts,PartenairesIdPartenaires")] EngagementChange engagementChange)

        {

            if (ModelState.IsValid)

            {

                _context.Add(engagementChange);

                await _context.SaveChangesAsync();

                return RedirectToAction(nameof(Index));

            }

            ViewData["AgentEconomiqueIdAgentEconomique"] = new SelectList(_context.AgentEconomiques, "IdAgentEconomique", "IdAgentEconomique", engagementChange.AgentEconomiqueIdAgentEconomique);

            ViewData["PartenairesIdPartenaires"] = new SelectList(_context.Partenaires, "IdPartenaires", "IdPartenaires", engagementChange.PartenairesIdPartenaires);

            ViewData["StatutsIdStatuts"] = new SelectList(_context.Statuts, "IdStatuts", "IdStatuts", engagementChange.StatutsIdStatuts);

            ViewData["TransportIdTransport"] = new SelectList(_context.Transports, "IdTransport", "IdTransport", engagementChange.TransportIdTransport);

            return View(engagementChange);

        }


        // GET: EngagementChanges/Edit/5

        public async Task<IActionResult> Edit(int? id)

        {

            if (id == null || _context.EngagementChanges == null)

            {

                return NotFound();

            }


            var engagementChange = await _context.EngagementChanges.FindAsync(id);

            if (engagementChange == null)

            {

                return NotFound();

            }

            ViewData["AgentEconomiqueIdAgentEconomique"] = new SelectList(_context.AgentEconomiques, "IdAgentEconomique", "IdAgentEconomique", engagementChange.AgentEconomiqueIdAgentEconomique);

            ViewData["PartenairesIdPartenaires"] = new SelectList(_context.Partenaires, "IdPartenaires", "IdPartenaires", engagementChange.PartenairesIdPartenaires);

            ViewData["StatutsIdStatuts"] = new SelectList(_context.Statuts, "IdStatuts", "IdStatuts", engagementChange.StatutsIdStatuts);

            ViewData["TransportIdTransport"] = new SelectList(_context.Transports, "IdTransport", "IdTransport", engagementChange.TransportIdTransport);

            return View(engagementChange);

        }


        // POST: EngagementChanges/Edit/5

        // To protect from overposting attacks, enable the specific properties you want to bind to.

        // For more details, see http://go.microsoft.com/fwlink/?LinkId=317598.

        [HttpPost]

        [ValidateAntiForgeryToken]

        public async Task<IActionResult> Edit(int id, [Bind("IdEngagementChange,NEngagement,NomImportateur,PrenomImportateur,RaisonSocialeImportateur,AdresseImportateur,RccmImporateur,ProfessionImportateur,ImmatriculationStatique,MotifE,ValeurMseLe,NDossiersDomiciliation,AApurerAvant,PourLe,OuvertLe,TransportIdTransport,AgentEconomiqueIdAgentEconomique,StatutsIdStatuts,PartenairesIdPartenaires")] EngagementChange engagementChange)

        {

            if (id != engagementChange.IdEngagementChange)

            {

                return NotFound();

            }


            if (ModelState.IsValid)

            {

                try

                {

                    _context.Update(engagementChange);

                    await _context.SaveChangesAsync();

                }

                catch (DbUpdateConcurrencyException)

                {

                    if (!EngagementChangeExists(engagementChange.IdEngagementChange))

                    {

                        return NotFound();

                    }

                    else

                    {

                        throw;

                    }

                }

                return RedirectToAction(nameof(Index));

            }

            ViewData["AgentEconomiqueIdAgentEconomique"] = new SelectList(_context.AgentEconomiques, "IdAgentEconomique", "IdAgentEconomique", engagementChange.AgentEconomiqueIdAgentEconomique);

            ViewData["PartenairesIdPartenaires"] = new SelectList(_context.Partenaires, "IdPartenaires", "IdPartenaires", engagementChange.PartenairesIdPartenaires);

            ViewData["StatutsIdStatuts"] = new SelectList(_context.Statuts, "IdStatuts", "IdStatuts", engagementChange.StatutsIdStatuts);

            ViewData["TransportIdTransport"] = new SelectList(_context.Transports, "IdTransport", "IdTransport", engagementChange.TransportIdTransport);

            return View(engagementChange);

        }


        // GET: EngagementChanges/Delete/5

        public async Task<IActionResult> Delete(int? id)

        {

            if (id == null || _context.EngagementChanges == null)

            {

                return NotFound();

            }


            var engagementChange = await _context.EngagementChanges

                .Include(e => e.AgentEconomiqueIdAgentEconomiqueNavigation)

                .Include(e => e.PartenairesIdPartenairesNavigation)

                .Include(e => e.StatutsIdStatutsNavigation)

                .Include(e => e.TransportIdTransportNavigation)

                .FirstOrDefaultAsync(m => m.IdEngagementChange == id);

            if (engagementChange == null)

            {

                return NotFound();

            }


            return View(engagementChange);

        }


        // POST: EngagementChanges/Delete/5

        [HttpPost, ActionName("Delete")]

        [ValidateAntiForgeryToken]

        public async Task<IActionResult> DeleteConfirmed(int id)

        {

            if (_context.EngagementChanges == null)

            {

                return Problem("Entity set 'ArtfdbContext.EngagementChanges' is null.");

            }

            var engagementChange = await _context.EngagementChanges.FindAsync(id);

            if (engagementChange != null)

            {

                _context.EngagementChanges.Remove(engagementChange);

            }


            await _context.SaveChangesAsync();

            return RedirectToAction(nameof(Index));

        }


        private bool EngagementChangeExists(int id)

        {

          return (_context.EngagementChanges?.Any(e => e.IdEngagementChange == id)).GetValueOrDefault();

        }

    }

}


"""""""View """""

@model ARTF.Entities.EngagementChange


@{

    ViewData["Title"] = "Create";

}


<h1>Create</h1>


<h4>EngagementChange</h4>

<hr />

<div class="row">

    <div class="col-md-4">

        <form asp-action="Create">

            <div asp-validation-summary="ModelOnly" class="text-danger"></div>

            <div class="form-group">

                <label asp-for="NEngagement" class="control-label"></label>

                <input asp-for="NEngagement" class="form-control" />

                <span asp-validation-for="NEngagement" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="NomImportateur" class="control-label"></label>

                <input asp-for="NomImportateur" class="form-control" />

                <span asp-validation-for="NomImportateur" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="PrenomImportateur" class="control-label"></label>

                <input asp-for="PrenomImportateur" class="form-control" />

                <span asp-validation-for="PrenomImportateur" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="RaisonSocialeImportateur" class="control-label"></label>

                <input asp-for="RaisonSocialeImportateur" class="form-control" />

                <span asp-validation-for="RaisonSocialeImportateur" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="AdresseImportateur" class="control-label"></label>

                <input asp-for="AdresseImportateur" class="form-control" />

                <span asp-validation-for="AdresseImportateur" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="RccmImporateur" class="control-label"></label>

                <input asp-for="RccmImporateur" class="form-control" />

                <span asp-validation-for="RccmImporateur" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="ProfessionImportateur" class="control-label"></label>

                <input asp-for="ProfessionImportateur" class="form-control" />

                <span asp-validation-for="ProfessionImportateur" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="ImmatriculationStatique" class="control-label"></label>

                <input asp-for="ImmatriculationStatique" class="form-control" />

                <span asp-validation-for="ImmatriculationStatique" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="MotifE" class="control-label"></label>

                <input asp-for="MotifE" class="form-control" />

                <span asp-validation-for="MotifE" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="ValeurMseLe" class="control-label"></label>

                <input asp-for="ValeurMseLe" class="form-control" />

                <span asp-validation-for="ValeurMseLe" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="NDossiersDomiciliation" class="control-label"></label>

                <input asp-for="NDossiersDomiciliation" class="form-control" />

                <span asp-validation-for="NDossiersDomiciliation" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="AApurerAvant" class="control-label"></label>

                <input asp-for="AApurerAvant" class="form-control" />

                <span asp-validation-for="AApurerAvant" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="PourLe" class="control-label"></label>

                <input asp-for="PourLe" class="form-control" />

                <span asp-validation-for="PourLe" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="OuvertLe" class="control-label"></label>

                <input asp-for="OuvertLe" class="form-control" />

                <span asp-validation-for="OuvertLe" class="text-danger"></span>

            </div>

            <div class="form-group">

                <label asp-for="TransportIdTransport" class="control-label"></label>

                <select asp-for="TransportIdTransport" class ="form-control" asp-items="ViewBag.TransportIdTransport"></select>

            </div>

            <div class="form-group">

                <label asp-for="AgentEconomiqueIdAgentEconomique" class="control-label"></label>

                <select asp-for="AgentEconomiqueIdAgentEconomique" class ="form-control" asp-items="ViewBag.AgentEconomiqueIdAgentEconomique"></select>

            </div>

            <div class="form-group">

                <label asp-for="StatutsIdStatuts" class="control-label"></label>

                <select asp-for="StatutsIdStatuts" class ="form-control" asp-items="ViewBag.StatutsIdStatuts"></select>

            </div>

            <div class="form-group">

                <label asp-for="PartenairesIdPartenaires" class="control-label"></label>

                <select asp-for="PartenairesIdPartenaires" class ="form-control" asp-items="ViewBag.PartenairesIdPartenaires"></select>

            </div>

            <div class="form-group">

                <input type="submit" value="Create" class="btn btn-primary" />

            </div>

        </form>

    </div>

</div>


<div>

    <a asp-action="Index">Back to List</a>

</div>


@section Scripts {

    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}

}


where can the problem come from?
I thank you in advance for your help




1 Reply

KP Kokila Poovendran Syncfusion Team December 14, 2023 06:45 AM UTC

Hi Aimée Marnelle Mbenguet,


Thank you for reaching out to us. We understand the importance of resolving your issue. However, based on the provided code snippets, it seems that your code is quite extensive, and it's challenging to identify the specific issue without a complete and runnable sample.


To assist you more effectively, we kindly request you to provide us with your entire project or a simplified, runnable sample that reproduces the problem. This will enable us to better understand the context and offer a precise solution tailored to your scenario.


For your convenience, you can refer to our demo site link below for a similar functionality:


https://ej2.syncfusion.com/aspnetcore/TextBoxes/TextboxFor#/bootstrap5


Please share the runnable sample at your earliest convenience so that we can delve deeper into the issue and provide you with a prompt resolution.


Regards,

Kokila Poovendran.


Loader.
Up arrow icon