ASP.NET MVC Обновление профиля пользователя (Entity Framework) - PullRequest
0 голосов
/ 20 мая 2019

Я новичок в ASP.NET, и у меня возникла проблема с добавлением функции «Обновление пользователя» после входа пользователя в систему.

Я попытался добавить коды на страницу контроллера, как показано ниже, ноэто не сработает.Я был бы признателен, если бы кто-нибудь мог дать мне совет, как исправить эти проблемы.

Я использовал сущностный каркас, а ниже приведен мой код

-CONTROLLER-

public class AccountController : Controller
    {
        TravelExpertsEntities db = new TravelExpertsEntities();
...


 public ActionResult Edit()
        {


            string username = User.Identity.Name;

            // Fetch the userprofile
            Customer user = db.Customers.Where(u => u.CustUserId.Equals(username)).FirstOrDefault();

            // Construct the viewmodel
            Customer model = new Customer();
            model.CustFirstName = user.CustFirstName;
            model.CustLastName = user.CustLastName;
            model.CustEmail = user.CustEmail;
           //...

            return View(model);


        }

        [HttpPost]
        public ActionResult Edit(Customer user)
        {
            using (TravelExpertsEntities db = new TravelExpertsEntities())
            {

                var usr = db.Customers.Where(u => u.CustUserId.Equals(user.CustUserId) && u.CustPassword.Equals(user.CustPassword)).FirstOrDefault();
                if (usr != null)
                {
                    // Update fields
                    user.CustFirstName = usr.CustFirstName;
                    user.CustLastName = usr.CustLastName;
                    user.CustEmail = usr.CustEmail;
                    //...
                    db.Entry(user).State = EntityState.Modified;

                    db.SaveChanges();
                }
                return RedirectToAction("Home", "Home");
            }

            return View(user);
        }
}

-MODEL-
public partial class Customer
    {
        [Key]
        public int CustomerId { get; set; }

        [DisplayName("First Name")]
        [Required(ErrorMessage = "First Name is required")]
        public string CustFirstName { get; set; }

        [DisplayName("Last Name")]
        [Required(ErrorMessage = "Last Name is required")]
        public string CustLastName { get; set; }

        [DisplayName("Address")]
        [Required(ErrorMessage = "Address is required")]
        public string CustAddress { get; set; }
     //...

    }

1 Ответ

0 голосов
/ 21 мая 2019

@ МК Ким попробуйте это:

`

    public ActionResult Edit()
    {


        string username = User.Identity.Name;

        // Fetch the userprofile
        Customer user = db.Customers.Where(u => u.CustUserId.Equals(username)).FirstOrDefault();


        return View(user);
    }

`

, чтобы вы могли изменить свой контроллер, чтобы он выглядел следующим образом

[HttpPost]
    public ActionResult Edit(Customer user)
    {
        using (TravelExpertsEntities db = new TravelExpertsEntities())
        {
            if (user!= null)

                //...
                db.Entry(user).State = EntityState.Modified;

                db.SaveChanges();
            }
            return RedirectToAction("Home", "Home");
        }

        return View(user);
    }

Но в следующий раз будет хорошей практикой написания кода.это может помочь: https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-3

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