2011-06-18 13 views
0

私はMVC3を使用しており、EntityFranmeworkのgeneretadクラスはデータベースにデータを保存しています。PostBackの値が失われる

コントローラ

// Get 
public ActionResult Create(Guid StudentID) 
{ 
    Semester semester = new Semester(); 

    ViewBag.BranchID = new SelectList(db.Branches, "ID", "Name"); 
    semester.Student = db.Students.Single(s => s.ID == StudentID); 

    return PartialView(semester); 
} 

// 
// POST: /Semester/Create 

[HttpPost] 
public ActionResult Create(Semester semester) 
{ 
    semester.ID = Guid.NewGuid(); 
    semester.CreatedDate = DateTime.Now; 
    semester.CreatedBy = "ddf"; 


    db.Semesters.AddObject(semester); 
    db.SaveChanges(); 
    return RedirectToAction("Index", "Student");  
} 

I GETメソッドでの学生のすべての結果を得るのですが、すべての生徒データは、POSTメソッドで失われます。

ヘルプ!

+1

Postメソッドに渡されたSemesterオブジェクトがnullまたは空の値を持つことを意味しますか?もしそうなら、それは拘束力のある問題であると思われます。その場合、あなたはView HTMLを共有できますか? –

答えて

2

POSTアクションに渡されるオブジェクトは、GETアクションでビューに渡されるオブジェクトと同じではありません。 POSTアクションでは、のみのパラメータを使用して、インスタンスがMVCによって作成されます。これは、学生インスタンスが長くなくなったことを意味します。学生IDをPOSTアクションに渡してそこに記入する必要があります。

[HttpPost] 
public ActionResult Create(Guid studentID, Semester semester) 
{ 
    semester.ID = Guid.NewGuid(); 
    semester.CreatedDate = DateTime.Now; 
    semester.CreatedBy = "ddf"; 

    semester.Student = db.Students.Single(s => s.ID == StudentID); 

    db.Semesters.AddObject(semester); 
    db.SaveChanges(); 
    return RedirectToAction("Index", "Student");  
} 
関連する問題