En NerdDinner, de Microsoft, usan esto por ejemplo:
//
// POST: /Dinners/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Dinner dinner) {
if (ModelState.IsValid) {
try {
dinner.HostedBy = "SomeUser";
dinnerRepository.Add(dinner);
dinnerRepository.Save();
return RedirectToAction("Details", new {id = dinner.DinnerID });
} catch {
ModelState.AddRuleViolations(dinner.GetRuleViolations());
}
}
return View(dinner);
}
2011/1/10 Andres Guzman <[email protected]>
> Buenas tardes comunidad:
>
> Acudo a Uds. debido a que tengo una duda estoy empezando un proyecto desde
> 0 con MVC y EF, ahora tengo una duda para el manejo de excepciones, Dentro
> de la arquitectura que estamos estudiando para implementar manejamos los
> errores dentro del Global.asax, (errores no controlados) con esto no hay
> problema, mi problema es como tendria que hacer para que en mi capa de
> negocio cuando exista algun problema con datos propios del negocio, poder
> capturarlo en la capa de presentacion y poder mostrarlo al usuario.
>
> Por ejemplo ahora en mi capa de negocio tengo el siguiente metodo
>
> public Entidad Obtener(long id)
> {
> try
> {
> if (id <= 0)
> throw new ArgumentNullException(id.ToString(), "Id debe ser
> > que 0");
>
>
> Expression<Func<sgOrdenSeguimiento, bool>> expresion = filtros
> => (filtros.id == id);
> Entidad obj= Obtener(expresion);
>
> if (obj== (Entidad)null)
> throw new Exception("No existe datos para el id indicado");
>
> return obj;
> }
> catch (Exception ex)
> {
> return null;
> }
> }
>
> Como lo tendría que hacer en mi capa de presentacion para mostrar alguno de
> estos dos mensajes de error si es que ocurriecen. ("Id debe ser > que 0" o
> "No existe datos para el id indicado").
>
> cod en capa de presentacion.
>
> public ActionResult Detalles(long id)
> {
> Entidad obj = _seguiminetoAplicacion.Obtener(id);
> return View(obj);
> }
>
>
> Desde ya muchas Gracias.
> --
> Andrés Guzmán
> 099319111
> [email protected]
>
>