Asp.net core 为什么我只能更新用户';ASP.Net核心中的s数据是否具有标识?

Asp.net core 为什么我只能更新用户';ASP.Net核心中的s数据是否具有标识?,asp.net-core,identity,Asp.net Core,Identity,我正在测试我的应用程序,我发现我只能更新单个用户的信息,而不能更新其他用户的信息,应用程序不会给我错误消息或任何东西,它只会重新加载页面,数据不会到达数据库数据,而对于单个用户,这不会发生 using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.

我正在测试我的应用程序,我发现我只能更新单个用户的信息,而不能更新其他用户的信息,应用程序不会给我错误消息或任何东西,它只会重新加载页面,数据不会到达数据库数据,而对于单个用户,这不会发生

using Microsoft.AspNetCore.Hosting; 
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.Rendering;
using System;
using System.ComponentModel.DataAnnotations;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using UniJobs.Data;
using UniJobs.Models;

namespace UniJobs.Areas.Identity.Pages.Account.Manage
{
public partial class IndexModel : PageModel
{
    private readonly UserManager<Usuarios> _userManager;
    private readonly SignInManager<Usuarios> _signInManager;
    private readonly ApplicationDbContext _context;
    private readonly IWebHostEnvironment _webHostEnvironment;

    public IndexModel(
        UserManager<Usuarios> userManager,
        SignInManager<Usuarios> signInManager,
        ApplicationDbContext context,
       IWebHostEnvironment webHostEnvironment)
    {
        _userManager = userManager;
        _signInManager = signInManager;
        this._context = context;
        this._webHostEnvironment = webHostEnvironment;
    }

    public string Username { get; set; }

    [TempData]
    public string StatusMessage { get; set; }

    [BindProperty]
    public InputModel Input { get; set; }

    public class InputModel
    {
        [Display(Name = "Imagen de perfil")]
        public IFormFile InputImagen { get; set; }

        [Display(Name = "¿Quién Soy?")]
        public string QuienSoy { get; set; }

        [Display(Name = "Sobre mis habilidades")]
        public string SobreHabilidades { get; set; }

        [Display(Name = "Sobre mis aptitudes")]
        public string SobreAptitudes { get; set; }

        [Required]
        [DataType(DataType.Text)]
        [Display(Name = "Nombre")]
        public string FirstName { get; set; }

        [Display(Name = "Provincia")]
        public int? Provincia { get; set; }

        [Display(Name = "Mi universidad")]
        public int? MiUni { get; set; }

        [Required]
        [DataType(DataType.Text)]
        [Display(Name = "Apellido")]
        public string LastName { get; set; }

        [DataType(DataType.Date)]
        [Display(Name = "Fecha de nacimiento")]
        public DateTime? BirthDate { get; set; }

        [Phone]
        [Display(Name = "Phone number")]
        public string PhoneNumber { get; set; }
    }

    private async Task LoadAsync(Usuarios user)
    {
        var userName = await _userManager.GetUserNameAsync(user);
        var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

        user.ID_Uni = _context.ListaEstudiantesUniversidades.Where(U => U.FK_UsuarioID == user.Id)
                              .Select(U => U.FK_UniversidadID).FirstOrDefault();

        Username = userName;

        Input = new InputModel
        {
            FirstName = user.FirstName,
            LastName = user.LastName,
            BirthDate = user.BirthDate,
            Provincia = user.FK_ProvinciaID,
            PhoneNumber = phoneNumber,
            MiUni = user.ID_Uni,
            QuienSoy = user.QuienSoy,
            SobreHabilidades = user.SobreHabilidades,
            SobreAptitudes = user.SobreAptitudes
        };
    }

    public async Task<IActionResult> OnGetAsync()
    {
        ViewData["FK_ProvinciaID"] = new SelectList(_context.Provincias, "ProvinciasID", "Provincia");
        ViewData["Universidad"] = new SelectList(_context.Universidades, "UniversidadesID", "NombreUniversidad");

        var user = await _userManager.GetUserAsync(User);
        if (user == null)
        {
            return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
        }
        await LoadAsync(user);
        return Page();
    }

    public async Task<IActionResult> OnPostAsync()
    {
        var user = await _userManager.GetUserAsync(User);
        if (user == null)
        {
            return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
        }

        if (!ModelState.IsValid)
        {
            await LoadAsync(user);
            return Page();
        }

        var phoneNumber = await _userManager.GetPhoneNumberAsync(user);
        if (Input.PhoneNumber != phoneNumber)
        {
            var setPhoneResult = await _userManager.SetPhoneNumberAsync(user, Input.PhoneNumber);
            if (!setPhoneResult.Succeeded)
            {
                StatusMessage = "Unexpected error when trying to set phone number.";
                return RedirectToPage();
            }
        }

        if (Input.InputImagen != null)
        {
            //Save image to wwwroot/image
            string wwwRootPath = _webHostEnvironment.WebRootPath;
            string ImageName = Path.GetFileNameWithoutExtension(Input.InputImagen.FileName);
            string ExtensionImage = Path.GetExtension(Input.InputImagen.FileName);
            user.ProfileImage = ImageName = ImageName + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ExtensionImage;
            string path = Path.Combine(wwwRootPath + "/UsersImages/Users/", ImageName);
            using (var fileStream = new FileStream(path, FileMode.Create))
            {
                await Input.InputImagen.CopyToAsync(fileStream);
            }
            //Insert record
        }

        if (Input.MiUni != _context.ListaEstudiantesUniversidades.Where(U => U.FK_UsuarioID == user.Id)
                                   .Select(U => U.FK_UniversidadID).FirstOrDefault())
        {
            var UniID = _context.ListaEstudiantesUniversidades.Where(U => U.FK_UsuarioID == user.Id)
                                .Select(U => U.ListaEstudiantesUniversidadesID).FirstOrDefault();

            var StudentUni = await _context.ListaEstudiantesUniversidades.FindAsync(UniID);

            _context.ListaEstudiantesUniversidades.Remove(StudentUni);
            await _context.SaveChangesAsync();

            var Uni = _context.ListaEstudiantesUniversidades.Add(new ListaEstudiantesUniversidades
            {
                FK_UniversidadID = Input.MiUni.Value,
                FK_UsuarioID = user.Id
            });
            await _context.SaveChangesAsync();
        }
        if (Input.FirstName != user.FirstName)
        {
            user.FirstName = Input.FirstName;
        }
        if (Input.LastName != user.LastName)
        {
            user.LastName = Input.LastName;
        }
        if (Input.BirthDate != user.BirthDate)
        {
            user.BirthDate = Input.BirthDate;
        }
        if (Input.Provincia != user.FK_ProvinciaID)
        {
            user.FK_ProvinciaID = Input.Provincia;
        }
        if (Input.QuienSoy != user.QuienSoy)
        {
            user.QuienSoy = Input.QuienSoy;
        }
        if (Input.SobreHabilidades != user.SobreHabilidades)
        {
            user.SobreHabilidades = Input.SobreHabilidades;
        }
        if (Input.SobreAptitudes != user.SobreAptitudes)
        {
            user.SobreAptitudes = Input.SobreAptitudes;
        }

        await _userManager.UpdateAsync(user);

        await _signInManager.RefreshSignInAsync(user);
        StatusMessage = "Your profile has been updated";
        return RedirectToPage();
    }
  }
}
使用Microsoft.AspNetCore.Hosting;
使用Microsoft.AspNetCore.Http;
使用Microsoft.AspNetCore.Identity;
使用Microsoft.AspNetCore.Mvc;
使用Microsoft.AspNetCore.Mvc.RazorPages;
使用Microsoft.AspNetCore.Mvc.Rendering;
使用制度;
使用System.ComponentModel.DataAnnotations;
使用System.IO;
使用System.Linq;
使用System.Threading.Tasks;
使用UniJobs.Data;
使用UniJobs.Models;
命名空间UniJobs.Areas.Identity.Pages.Account.Manage
{
公共部分类索引模型:PageModel
{
私有只读用户管理器_UserManager;
专用只读签名管理器\u签名管理器;
私有只读应用程序的bContext\u上下文;
私人只读IWebHostEnvironment\u webHostEnvironment;
公共索引模型(
用户管理器用户管理器,
SignInManager SignInManager,
ApplicationDbContext上下文,
IWebHostEnvironment网站HostEnvironment)
{
_userManager=userManager;
_signInManager=signInManager;
这._context=context;
这。_webHostEnvironment=webHostEnvironment;
}
公共字符串用户名{get;set;}
[临时数据]
公共字符串状态消息{get;set;}
[BindProperty]
公共输入模型输入{get;set;}
公共类输入模型
{
[显示(Name=“Imagen de perfil”)]
公共文件InputImagen{get;set;}
[显示(Name=“?Quién Soy?”)]
公共字符串QuienSoy{get;set;}
[显示(Name=“Sobre mis habilidades”)]
公共字符串SobreHabilidades{get;set;}
[显示(Name=“Sobre错误资质”)]
公共字符串SOBReaptions{get;set;}
[必需]
[数据类型(DataType.Text)]
[显示(Name=“Nombre”)]
公共字符串名{get;set;}
[显示(Name=“Provincia”)]
公共int?Provincia{get;set;}
[显示(Name=“Mi universidad”)]
公共int?MiUni{get;set;}
[必需]
[数据类型(DataType.Text)]
[显示(Name=“Apellido”)]
公共字符串LastName{get;set;}
[数据类型(DataType.Date)]
[显示(Name=“Fecha de nacimiento”)]
公共日期时间?生日{get;set;}
[电话]
[显示(Name=“电话号码”)]
公共字符串PhoneNumber{get;set;}
}
专用异步任务LoadAsync(Usuarios用户)
{
var userName=await\u userManager.GetUserNameAsync(用户);
var phoneNumber=await\u userManager.GetPhoneNumberAsync(用户);
user.ID\U Uni=\U context.listaestudiantesunidades.Where(U=>U.FK\U UsuarioID==user.ID)
.选择(U=>U.FK_Universidad).FirstOrDefault();
用户名=用户名;
输入=新输入模型
{
FirstName=user.FirstName,
LastName=user.LastName,
BirthDate=user.BirthDate,
Provincia=user.FK_ProvinciaID,
PhoneNumber=电话号码,
MiUni=user.ID\u Uni,
QuienSoy=user.QuienSoy,
SobreHabilidades=user.SobreHabilidades,
SOBReaptions=用户。SOBReaptions
};
}
公共异步任务OnGetAsync()
{
ViewData[“FK_ProvinciaID”]=新的选择列表(_context.Provincias,“ProvinciasID”,“Provincia”);
ViewData[“Universidad”]=新的选择列表(_context.Universidades,“UniversidadesID”,“NombreUniversidad”);
var user=await\u userManager.GetUserAsync(用户);
if(user==null)
{
返回NotFound($“无法加载ID为“{{u userManager.GetUserId(user)}”的用户”);
}
等待加载异步(用户);
返回页();
}
公共异步任务OnPostAsync()
{
var user=await\u userManager.GetUserAsync(用户);
if(user==null)
{
返回NotFound($“无法加载ID为“{{u userManager.GetUserId(user)}”的用户”);
}
如果(!ModelState.IsValid)
{
等待加载异步(用户);
返回页();
}
var phoneNumber=await\u userManager.GetPhoneNumberAsync(用户);
if(Input.PhoneNumber!=PhoneNumber)
{
var setPhoneResult=wait_userManager.SetPhoneNumberAsync(用户,输入.PhoneNumber);
如果(!setPhoneResult.successed)
{
StatusMessage=“尝试设置电话号码时出现意外错误。”;
返回重定向Topage();
}
}
if(Input.InputImagen!=null)
{
//将图像保存到wwwroot/image
字符串wwwRootPath=\u webHostEnvironment.WebRootPath;
字符串ImageName=Path.GetFileNameWithoutExtension(Input.InputImagen.FileName);
string ExtensionImage=Path.GetExtension(Input.InputImagen.FileName);
user.ProfileImage=ImageName=ImageName+DateTime.Now.ToString(“yyyymmddhhmmssff”)+ExtensionImage;
string path=path.Combine(wwwRootPath+“/UsersImages/Users/”,ImageName);
使用(var fileStream=newfilestream(路径,FileMode.Create))
{
等待Input.InputImagen.CopyToAsync(fileStream);
}
//插入记录
}
if(Input.MiUni!=\U context.listaestudiantesunidades.Where(U=>U.FK\U UsuarioID==user.Id)
.Select(U=>U.FK_universidad).FirstOrDefault()
{
var UniID=\U context.listaestudiantesunidades.Where(U=>U.FK\U UsuarioID==user.Id)
.选择(U=>U.ListAEstudiantesUniversidadeId).FirstOrDefault();