Can you verify that a sessionscoep is created in your controller:

Debug.Assert(SessionScope.Current != null);

-Markus

2009/7/3 David E <[email protected]>

>
> Hi when the following code is run with Lazy loading off everything is
> fine
>
>      [ValidateModel(typeof (ArticleEditDto)), AcceptVerbs
> (HttpVerbs.Post)]
>            [ValidateInput(false)] //so that can pass html for body
> into action
>            public ActionResult Save(ArticleEditDto form)
>            {
>                if (ViewData.ModelState.IsValid)
>                {
>                    return SaveContent(form, article =>
> RedirectToAction<NewsController>(c => c.Index(null)),
>                                           PopulateIdentities);
>                }
>                return Edit(articleMapper.Map(form));
>            }
>
> When I implement ar.sessionscope in web.config I get a session is
> closed error
>
> After some digging I found that the first call to
> `ViewData.ModelState.IsValid` calls the database without issue but
> then it appears that the session gets closed before the
> articleMapper.Map(form) is called (if invalid)
>
> If I put the following code together
>
>    [ValidateModel(typeof (ArticleEditDto)), AcceptVerbs
> (HttpVerbs.Post)]
>    [ValidateInput(false)] //so that can pass html for body into
> action
>    public ActionResult Save(ArticleEditDto form)
>    {
>        if (ViewData.ModelState.IsValid)
>        {
>            using (new SessionScope())
>                return SaveContent(form, article =>
> RedirectToAction<NewsController>(c => c.Index(null)),
>                                   PopulateIdentities);
>        }
>        using(new SessionScope())
>            return Edit(articleMapper.Map(form));
>    }
>
> I get an error about updating the underlying class? This is very odd
> as I am using ActiveRecordMediator as follows and at no time trying to
> update the class?
>
>
>
>       public ActionResult Edit(Article form)
>        {
>            int articleTypeId = form.ArticleType == null ? 0 :
> form.ArticleType.Id <http://form.articletype.id/>;
>            PopulateDropdowns(form, articleTypeId);
>            return View("Edit", articleMapper.Map(form));
>        }
>
>    public virtual TDto Map(TModel model)
>    {
>        model = model.Id > 0 ? repository.FindByPrimaryKey(model.Id) :
> new TModel();
>        return Map<TDto>(model);
>    }
>
>    public new T FindByPrimaryKey(object id)
>    {
>        return ActiveRecordMediator<T>.FindByPrimaryKey(id);
>    }
>
> Sorry this post is so long but I am really stuck on why this is
> happening
>
> Can post lots more info or errors if needed
>
> Thanks
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to