代码之家  ›  专栏  ›  技术社区  ›  Neo Cortex

如何在create方法[asp.net mvc]中填充两个表

  •  0
  • Neo Cortex  · 技术社区  · 8 年前

    referents 和 users .

    Referents:
    FirstName|LastName|Phone|Password|ConfirmPassword|UserName|Email
    

    以及

    Users:
    FirstName|LastName|UserRole|Password|ConfirmPassword|UserName
    

    目前 Create

    // GET: Referents/Create
            public ActionResult Create()
            {
                return View();
            }
        // POST: Referents/Create
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "ReferentID,FirstName,LastName,Phone,Email,Password,ConfirmPassword")] Referents referents)
        {
            if (ModelState.IsValid)
            {
                db.Referents.Add(referents);          
                db.SaveChanges();
                return RedirectToAction("Index");
            }
    
            return View(referents);
        }
    

    很明显,现在我只是在填充 Referents .

    Users 同时包含某些数据(用户名、姓氏、用户名)的表?

    UserRole 列我想写字符串“referent”。

    新增型号:

    namespace StudentService.Models
    {
        public class Referents
        {
            [Key]
            public int ReferentID { get; set; }
    
        [Required(ErrorMessage = "Морате унети име!")]
        public string FirstName { get; set; }
    
        [Required(ErrorMessage = "Презиме је обавезно!")]
        public string LastName { get; set; }
    
        [Required(ErrorMessage = "Корисничко име је обавезно!")]
        [Index(IsUnique = true)]
        public string UserName { get; set; }
    
        [Required(ErrorMessage = "Унесите исправан број телефона.")]
        [DataType(DataType.PhoneNumber)]
        public string Phone { get; set; }
    
        [Required(ErrorMessage = "Унесите исправну адресу електронске поште.")]
        [DataType(DataType.EmailAddress)]
        public string Email { get; set; }
    
        [Required(ErrorMessage = "Шифра је обавезна!")]
        [DataType(DataType.Password)]
        public string Password { get; set; }
    
        [Compare("Password", ErrorMessage = "Морате потврдити лозинку!")]
        [DataType(DataType.Password)]
        public string ConfirmPassword { get; set; }
    
        }
    }
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Jack    8 年前

    您需要为创建项 users 并将其添加到数据库中。

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "ReferentID,FirstName,LastName,Phone,Email,Password,ConfirmPassword")] Referents referents)
    {
        if (ModelState.IsValid)
        {
            // Create the user data for the current referent.
            Users currentUser = new Users(){
                FirstName = referents.FirstName,
                UserRole = "referent"
                // .... Finish initializing fields of your model.
            };
    
            db.Referents.Add(referents); 
            // Save the new user in your database.         
            db.Users.Add(currentUser);
    
            db.SaveChanges();
            return RedirectToAction("Index");
        }
    
        return View(referents);
    }
    

    如果没有看到模型代码,就很难具体化,但您应该能够将其作为示例。只需将currentUser对象初始化为所需的状态。根据您的模式,这可能不起作用。

    推荐文章