在我的控制器中使用会话来传递数据

本文关键字:数据 会话 我的 控制器 | 更新日期: 2023-09-27 18:32:31

我正在构建一个项目,用户可以在其中添加团队并选择要添加的团队 players.so 添加球员时,团队的ID应随之传递。我有一个控制器来添加团队,另一个控制器来添加球员。我将球队的 ID 传递给付款人控制器的索引操作方法,并显示该所选球队的所有球员。现在我想添加该团队的一名球员。我在 Index 操作方法中创建了一个会话来保存 ID,并在创建操作方法中使用它。调试时,我可以看到 ID 传递正确,但在创建新记录时,玩家 ID 始终为 0,因此 db.savechanges() 上发生错误,就像 playerID=0 一样。

这是我的代码片段:

播放器控制器

 public ActionResult Index(int id)
    {
        string team = db.Teams.Where(m => m.Id == id).Select(m => m.teamName).First();
        var player = db.players.Where(m => m.team == team).ToList();
        int Tid=db.Teams.Where(m=>m.Id==id).Select(m=>m.Id).FirstOrDefault();
        Session["TeamID"] = Tid;
        return View(player);
    }
 [HttpPost]
    public ActionResult AddEditRecord(player Player, string cmd)
    {
        // team Id
        int TeamId = (int)Session["TeamID"];
        //team name
        string team = db.Teams.Where(m => m.Id == TeamId).Select(m => m.teamName).First();
        if (ModelState.IsValid)
        {
            if (cmd == "Save")
            {
                try
                {
                    db.players.Add(Player);
                    player pl = db.players.Where(m => m.team == null).FirstOrDefault();
                    pl.team = team;
                    db.SaveChanges();
                  //  db.SaveChanges();
                    return RedirectToAction("Index");
                }
                catch { }
            }
        }
      }
    }

玩家 ID 始终设置为零。我的代码出了什么问题

我正在使用部分视图,因为我正在使用弹出对话框进行 CREUD 操作

任何帮助真的非常感谢

在我的控制器中使用会话来传递数据

问题解决了。这就是我所做的,它运行良好

 if (ModelState.IsValid)
        {
            if (cmd == "Save")
            {
                try
                {
                    var plyr = new player();
                /*    db.players.Add(Player);
                  //  player pl = db.players.Where(m => m.team == null).FirstOrDefault();
                 //   Player.team = team;
                    db.SaveChanges();*/
                    plyr.playerName = Player.playerName;
                    plyr.team = team;
                    plyr.position = Player.position;
                    plyr.email = Player.email;
                    plyr.type = Player.type;
                    plyr.height = Player.height;
                    db.players.Add(plyr);
                    db.SaveChanges();
                    return RedirectToAction("Index/" + TeamId);


                }
                catch { }
            }