사용자가 팀을 추가하고 팀을 선택하여 플레이어를 추가 할 수있는 프로젝트를 만듭니다. 따라서 플레이어를 추가 할 때 팀의 ID를 전달해야합니다. 팀을 추가하고 다른 컨트롤러를 추가하여 플레이어를 추가합니다. 나는 팀의 ID를 페이더 컨트롤러의 인덱스 액션 메소드에 전달하고 선택한 팀의 모든 플레이어를 표시했습니다. 이제 해당 팀의 플레이어를 추가하고 싶습니다. ID를 보유하고 작업 만들기 메서드에서 ID를 보유하는 인덱스 작업 메서드. 디버깅 할 때 ID가 올바르게 전달되었음을 알 수 있지만 새 레코드를 만들 때 플레이어 ID는 항상 0이므로 db.savechanges() 오류가 발생합니다. playerID = 0과 같이 발생합니다. 데이터를 전달하기 위해 내 컨트롤러에서 세션을 사용합니다.
이
내 코드의 조각입니다 : 내 코드로 playerID 항상 zero.what로 설정되어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 { }
}
}
}
}
이 잘못
플레이어 컨트롤러 내가 부분적으로 사용하고
CREUD 작업을위한 팝업 대화 상자를 사용하고 있기 때문에보기가 발생했습니다.
어떤 도움이 정말로 받아 들여집니다.