.NET Core Controller Edit ActionResult ошибки - PullRequest
1 голос
/ 27 июня 2019

В строке HttpGet '.Select (user => new AspNetUser ()' для HttpGet, которую я получаю ', локальный или параметр с именем' user 'не может быть объявлен в этой области, потому что это имя используется во внешней локальной области для определить локальный или параметр '

На HttpPost я получаю сообщение об ошибке в строке listdata Listdata. Не удалось найти тип или имя пространства имен 'Listdata' (вы пропустили директиву using или ссылку на сборку?) '.

    [HttpGet]
      public ActionResult Edit(string id)
      {
        //Get user and return the Edit View
        AspNetUser user = db.Users.Where(u => u.Id == id)
        .Select(user => new AspNetUser()
        {
          Id = user.Id,
          UserName = user.UserName,
          NormalizedUserName = user.NormalizedUserName,
          Email = user.Email,
          NormalizedEmail = user.NormalizedEmail,
          EmailConfirmed = user.EmailConfirmed,
          PasswordHash = user.PasswordHash,
          SecurityStamp = user.SecurityStamp,
          ConcurrencyStamp = user.ConcurrencyStamp,
          PhoneNumber = user.PhoneNumber,
          PhoneNumberConfirmed = user.PhoneNumberConfirmed,
          TwoFactorEnabled = user.TwoFactorEnabled,
          LockoutEnd = user.LockoutEnd,
          LockoutEnabled = user.LockoutEnabled,
          AccessFailedCount = user.AccessFailedCount


          // Add the remainder properties
        }).FirstOrDefault();
          return View(user);
       }


    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult 

   Edit([Bind("Id,Username,NormalizedUserName,Email,NormalizedEmail,
   EmailConfirmed,PasswordHash,SecurityStamp,")] Listdata  listdata)
    {
        if (ModelState.IsValid)
        {
            db.Entry(listdata).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(listdata);
        }

Я ожидаю, что когда я нажму на ссылку «Изменить» на странице просмотра «Правка», он перейдет к пользователю, которому я хочу обновить его информацию и сохранить это изменение в сообщении.

Ответы [ 2 ]

0 голосов
/ 27 июня 2019

Вы дважды объявили "пользователь" здесь -

    AspNetUser user = db.Users.Where(u => u.Id == id)

и здесь

    .Select(user => new AspNetUser()

На HttpPost я получаю сообщение об ошибке в строке listdata Listdata. Не удалось найти тип или имя пространства имен «Listdata» (отсутствует директива using или ссылка на сборку?) '.

Как говорится в сообщении об ошибке, вы пропускаете оператор using для этого класса. Вам нужно либо создать Listdata, либо добавить ссылку на проект, в котором он находится.

0 голосов
/ 27 июня 2019

У вас есть эта ошибка, потому что вы определяете 2 пользовательские переменные в той же области в AspNetUser user и .Select(user

Поэтому измените свой код на этот

 AspNetUser userInfo = db.Users.Where(u => u.Id == id) // here
    .Select(user => new AspNetUser()
    {
        Id = user.Id,
        UserName = user.UserName,
        NormalizedUserName = user.NormalizedUserName,
        Email = user.Email,
        NormalizedEmail = user.NormalizedEmail,
        EmailConfirmed = user.EmailConfirmed,
        PasswordHash = user.PasswordHash,
        SecurityStamp = user.SecurityStamp,
        ConcurrencyStamp = user.ConcurrencyStamp,
        PhoneNumber = user.PhoneNumber,
        PhoneNumberConfirmed = user.PhoneNumberConfirmed,
        TwoFactorEnabled = user.TwoFactorEnabled,
        LockoutEnd = user.LockoutEnd,
        LockoutEnabled = user.LockoutEnabled,
        AccessFailedCount = user.AccessFailedCount


        // Add the remainder properties
    }).FirstOrDefault();

    return View(userInfo);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...