我有一個購物車應用程序在MonoRail上運行並使用Castle ActiveRecord/NHibernate,並且有一個ShoppingCart表和一個ShoppingCartItems表,它們映射到實體。城堡MonoRail ARDataBind試圖綁定到不存在的行
以下是該場景:用戶向購物車添加東西,比如說5個物品,然後查看購物車。購物車顯示全部5項。用戶複製選項卡/窗口並獲取同一購物車的另一個選項卡(稱爲選項卡B)。用戶從購物車中移除一個物品,所以現在在標籤B中有4個物品,但是在原始標籤A中,仍然有5個物品。用戶返回選項卡A並更新購物車中的某些內容,然後單擊提交更改的「更新」按鈕。我的MonoRail動作嘗試使用來自視圖的數據在ShoppingCartItems上執行ARDataBind,其中包含所有5個項目。當它到達用戶從標籤B中刪除的項目時,它會針對該項目拋出「沒有給定標識符存在的行」。
我不知道是否有辦法讓它不綁定該行,返回null,返回新的實例等? ARDataBind屬性上有一個AutoLoadBehavior參數,但似乎隻影響子實體的加載,而不影響根實體的加載。無論我選擇哪個選項,我在控制甚至進入操作方法之前都會得到異常(AutoLoadBehavior.Never除外,但這對我沒有任何幫助)。
取而代之,我調用Request.ObtainParamsNode()來調用表單節點並將它們手動解析爲對象,並忽略不再存在的節點。有沒有更好的辦法?
謝謝。
真棒 - 謝謝。我不確定在某個地方是否有我失蹤的地方,但這很好。 – 2010-03-26 00:17:15