【问题标题】:using session in my controller to pass data在我的控制器中使用会话来传递数据
【发布时间】:2014-12-01 19:04:42
【问题描述】:

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

这是我的代码的 sn-p:

播放器控制器

 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 { }
            }
        }
      }
    }

playerID 总是设置为零。我的代码有什么问题

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

非常感谢任何帮助

【问题讨论】:

    标签: c# asp.net-mvc session


    【解决方案1】:

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

     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 { }
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-06
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 2020-04-25
      • 1970-01-01
      • 1970-01-01
      • 2013-10-18
      相关资源
      最近更新 更多