У меня есть приложение для корзины покупок, работающее на MonoRail, и использование Castle ActiveRecord/NHibernate, а также таблица ShoppingCart и таблица ShoppingCartItems, которые отображаются на объекты.Замок MonoRail ARDataBind пытается связать с несуществующей строкой
Вот сценарий: пользователь добавляет вещи в корзину покупок, скажет 5 предметов и отправляется на просмотр тележки. Тележка показывает все 5 предметов. пользователь дублирует вкладку/окно и получает другую вкладку одной и той же корзины (назовите ее вкладкой B). пользователь удаляет элемент из корзины, так что теперь на вкладке B есть 4 элемента, но на исходной вкладке A все еще есть 5 элементов. пользователь возвращается на вкладку A и обновляет что-то в корзине и нажимает кнопку «Обновить», которая отправляет изменения. мое действие MonoRail пытается сделать ARDataBind на ShoppingCartItems, используя данные из представления, в которое входят все 5 элементов. когда он добирается до элемента, который пользователь удалил из вкладки B, он выбрасывает «Нет строки с заданным идентификатором» для этого элемента.
Я не могу понять, есть ли способ, чтобы он не связывал эту строку, возвращал null, возвращал новый экземпляр и т. Д.? в атрибуте ARDataBind есть параметр AutoLoadBehavior, но это влияет только на загрузку дочерних объектов, а не на корневой объект. независимо от того, какой вариант я выбираю, я получаю исключение, прежде чем управление даже войдет в метод действия (кроме AutoLoadBehavior.Never, но это на самом деле мне не помогает).
Вместо этого у меня есть код, который вызывает Request.ObtainParamsNode(), чтобы вытащить узлы формы и разобрать их вручную в объекты и игнорировать те, которые больше не существуют. Есть ли способ лучше?
спасибо.
awesome - спасибо. Я не был уверен, что где-то там где-то было место, но это отлично работает. –