Ahora estamos hablando de otra cosa:
suponiendo que vos tenes un action como Save
public void Save(ViewModel viewModel)
{
if(ModelState.IsValid)
{
hacer algo para continuar guardando. viewModel
return View....Siguient.
}
return View(viewModel);
}
Lo único que tienes que hacer es implementar IDataErrorInfo en el viewmodel,
y creo que en la versión 2.0 si usas DataAnnotations no hace falta nada más.
Conclusión final, controller, Asp.Net MVC, ViewModel, etc.... control de
excepciones... donde juega NHibernate en la pregunta?
El 19 de julio de 2010 15:16, Edgar Ramos <[email protected]> escribió:
> Gracias Gustavo
>
> Pecando nuevamente de novato, como logro por un lado regresar a la
> vista mi objeto invalido (para que pueda ser visualizado con sus
> errores)
> y como logro que este objeto ivalido no sea persistido.
>
> A lo mejor estan sencillo y yo lo complico demasiado
>
> Saludos
>
> Edgar
>
> El día 19 de julio de 2010 12:58, Gustavo Ringel
> <[email protected]> escribió:
> > Edgar, si haces return adentro del catch, absorbiste el throw o sea que
> en
> > tu vida vas a llegar a la excepcion de tu session manager, a menos que
> > "tengas suerte" y return View(objeto) de una excepcion :).
> > Gustavo.
> >
> > 2010/7/19 Edgar Ramos <[email protected]>
> >>
> >> En mi pequeño ejemplo de una aplicacion asp net mvc + nh 2.1, he
> >> implementado IHttpModule, pero tengo una duda,
> >> en mi controller tengo lo siguiente
> >>
> >> try {
> >> //codigo que puede lanzar una exception
> >> }
> >> catch (Exception) {
> >> return View(objeto);
> >> }
> >>
> >> si por cualquier motivo entra al catch , el codigo abajo descrito
> >> Application_EndRequest(), es suficiente para que haga un Rollback() ?,
> >> este
> >> sería automatico ?, o tengo que implementar algo adicional ?
> >>
> >> Por un lado el patron me dice por cada request una session, noto que
> >> en mi ejemplo eso lo esta haciendo, pero por otro lado la parte ACID,
> >> con el unit of work , no me esta funcionando, o la verdad ya estoy
> >> confundido, si tengo que leer en español o en ingles, cualquier link,
> >> pdf, lo que sea me es bienvenido
> >>
> >> private void Application_EndRequest(object sender, EventArgs e) {
> >>
> >> ISession session = CurrentSessionContext.Unbind(
> >> ServiceLocator.Current.GetInstance<ISessionFactory>());
> >>
> >> try {
> >>
> >> if (session.Transaction.IsActive) {
> >> session.Transaction.Commit();
> >> }
> >>
> >> }
> >> catch (Exception) {
> >> if (session.Transaction.IsActive) {
> >> session.Transaction.Rollback();
> >> }
> >>
> >> throw;
> >>
> >> }
> >> finally {
> >> session.Close();
> >> }
> >> }
> >>
> >>
> >>
> >> Saludos
> >>
> >> Edgar
> >>
> >> PD: Me sugirieron hacer unos test, pero recien estoy entrando a ese
> mundo,
> >>
> >> --
> >> Para escribir al Grupo, hágalo a esta dirección:
> >> [email protected]
> >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
> >
> > --
> > Para escribir al Grupo, hágalo a esta dirección:
> > [email protected]
> > Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano