public ActionResult Create(InvoiceViewModel model, string action) { if (action == "generar") { if (il.Registrar(model.ToModel())) { return(Redirect("~/")); } } else if (action == "agregar_producto") { // Si no ha pasado nuestra validación, mostramos el mensaje personalizado de error if (!model.SeAgregoUnProductoValido()) { ModelState.AddModelError("producto_agregar", "Solo puede agregar un producto válido al detalle"); } else if (model.ExisteEnDetalle(model.HeaderProductId)) { ModelState.AddModelError("producto_agregar", "El producto elegido ya existe en el detalle"); } else { model.AgregarItemADetalle(); } } else if (action == "retirar_producto") { model.RetirarItemDeDetalle(); } else { throw new Exception("Acción no definida .."); } return(View(model)); }