【发布时间】: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