2009-09-04 40 views
0

我有一個形式的觀點,當用戶提交表單,匹配的操作方法是這樣的:無法使用ASP.NET MVC更新控件操作中的對象?

public ActionResult Test(ViewModel vm, Member member) 
{ 
//... 
if (ModelState.IsValid) 
    { 
    try{ 
     //... 
     member.OID = 1; //error here 
     //... 
    }Catch(Exception ex) 
    { 
     //... 
    } 
    }    
} 

它以前工作正常,但現在我得到錯誤的分配值到一個對象的屬性時,下面: 由於對象的當前狀態,操作無效

爲什麼?如何解決它?

回答

0

它不是很明確,因爲你的代碼示例,如果我的猜測是正確的。成員對象是LINQ的類,您將OID作爲FK指向模式中的其他對象。

錯誤顯示您不能直接分配OID。說你的O是職業ID。那麼你必須

member.Occupation = (from c in dc.Occupation where c.ID = 1 select c); 

希望這會有所幫助。

+0

謝謝。你是對的。 OID是FK。但是,如果我分配member.Occupation = myOccupation; (myOccupation是一個現有的對象匹配表中的現有行數據庫職業),並保存它(SubmitChanges),它會給我另一個錯誤說不能添加重複鍵。這意味着它試圖插入另一行的職業相同的ID。非常困惑。 – KentZhou 2009-09-04 17:27:21

+1

您的myOccupation對象應該從與從其加載的成員對象相同的dataContext加載。請參閱 - http://stackoverflow.com/questions/795196/linq-problem-with-inserting-new-rows-that-have-references-to-existing-records/795430#795430 – Jirapong 2009-09-04 17:53:48

相關問題