Estoy realizandounapaplicaciónenASP.NET Core 2.1 MVC,en el cual estoy usando Identity para la autenticacion de usuarios,tengo una clase llamada Carpeta el cual tieneunarelaciónconcApplicationUser este deriba de IdentityUser,larelaciónesla siguiente Una Carpeta puede pertenecer un Usuario y un Usuario puede tener muchas carpetas al crear una carpeta registra todo bien pero cuando quiero editar dicha carpeta el primer error que tengo es el Edit de Get donde el id = 1 pero cuando llega al Edit del Post ese mismo id = 0 donde no acctualiza y me redirecciona a una pagina en blanco,luego el otro error es que cuando quiero editar la carpeta y este tiene una relacion con Departamento,Provincia,Municipio me recuperar sus valores pero no asi con Usuarios .

// GET: Carpetass/Edit/5
    public async Task<IActionResult> Edit(int? id)
    {        
        if (id == null)
        {
            return NotFound();
        }

        var carpeta = await _context.Carpetas.FindAsync(id);

        ViewData["DepartamentoId"] = new SelectList(_context.Departamentos, "DepartamentoId", "Nombre");

        var fullNames = await _context.Users.ToListAsync();// Select(u => new { UserID = u.Id, FullName = u.Nombres + " " + u.Apellidos }).ToList();

        //var fullNames = await _context.Users.ToListAsync();

        **ViewData["Id"] = new SelectList(await _context.Users.ToListAsync(), "Id", "FullName");**
        //ViewData["Id"] = _context.Users.Select(u => u.FullName).ToList();


        ViewData["ProvinciaId"] = new SelectList(_context.Provincias, "ProvinciaId", "Nombre");
        ViewData["MunicipioId"] = new SelectList(_context.Municipios, "MunicipioId", "Nombre");
        ViewData["UbicacionId"] = new SelectList(_context.Ubicaciones, "UbicacionId", "Nombre");

        //ViewData["Id"] = new SelectList(_context.Users, "Id", "FullName", resolucion.Id);
        //ViewData["UsersId"] = new SelectList(_context.Users.ToList(), "Id", "FullName", carpeta.Id);
        //ViewData["UsersId"] = new SelectList(_context.Users.ToList(), "Id", "FullName");


        if (carpeta == null)
        {
            return NotFound();
        }

        return View(carpeta);            
    }

    // POST: Carpetass/Edit/5
    // To protect from overposting attacks, please 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("CarpetaId,IDCarpeta,AgrupacionSocial,Cuerpos,Fojas,Poligono,Id,DepartamentoId,ProvinciaId,MunicipioId,UbicacionId")] Carpeta carpeta)
    {
        if (id != carpeta.CarpetaId)
        {
            return NotFound();
        }

        if (ModelState.IsValid)
        {
            try
            {
                _context.Update(carpeta);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CarpetasExists(carpeta.CarpetaId))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }
            return RedirectToAction(nameof(Index));
        }
        return View(carpeta);
    }

Segun pruebas el problema esta en esta linea de codigo en los dos casos .

ViewData [“Id”] =新的SelectList(等待_context.Users.ToListAsync(),“Id”,“FullName”);

Primero que no agarra el Id del usuario y segundo que cambia el ida 0 en el post .

enter image description here

enter image description here