[RESOLVIDO]Lançar Exceção nas minhas Views em Asp.Net MVC 5

Pessoal, boa tarde.

Estou com uma dúvida em relação exceções nas minhas View;

To com este projeto :


-br.com.rc.bd -> faz comunicação com a minhas base de dados;
-br.com.rc.bo -> modelo de negocios/ projeto de negocios;
-br.com.rc.dao -> camada de dml;
-br.com.rc.teste- > teste main;
-br.com.rc.transfer-> getters e setters;
-br.com.rc.ui -> projeto view para o usuario final


Queria que enviasse uma exceção limpa da minha BO para a minha UI. Mas está deste jeito:

Tem como vocês darem um help, para que eu possa enviar a exceções limpas, para o usuário final ?

Desde já, muito obrigado!!

puxa qual sera a sua duvida?

Resumir, ja que a galera trabalha muito com o modelo - MVC

-br.com.rc.bd -> faz comunicação com a minhas base de dados;
-br.com.rc.bo -> modelo de negocios/ projeto de negocios;
-br.com.rc.dao -> camada de dml;
-br.com.rc.teste- > teste main;
-br.com.rc.transfer-> getters e setters;
-br.com.rc.ui -> projeto view para o usuario final

Não sei se entendi direito, mas estude sobre validação com ASP.NET MVC.

Vai depender de como está trabalhando, se estiver processando HTML no servidor com razor, então segue um exemplo mais clássico: http://www.ezzylearning.com/tutorial/creating-custom-validation-attribute-in-asp-net-mvc

Trechos que tem haver com seu caso:

Model:

  public class Customer
   {
      [ValidBirthDate(ErrorMessage = "Birth Date can not be greater than current date")]
      public DateTime BirthDate { get; set; } 
   }

Validação:

   [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
   public sealed class ValidBirthDate : ValidationAttribute
   {
      protected override ValidationResult IsValid(object value, ValidationContext validationContext)
      {
         if (value != null)
         {
            DateTime _birthJoin = Convert.ToDateTime(value);
            if (_birthJoin > DateTime.Now)
            {
               return new ValidationResult("Birth date can not be greater than current date.");
            }
         }
         return ValidationResult.Success;
      }
   }

View:

  <div class="editor-field">
     @Html.EditorFor(model => model.BirthDate)
     @Html.ValidationMessageFor(model => model.BirthDate)
  </div>

Eu to utilizando, por conta da produção!!!
Antes utilizada JSF. Mas como achei muito interessante ASP.NET, com razor.
Então eu migrei!
Sem falar no EF.

Sim é infinitamente mais interessante do que JSF. Quanto ao seu problema o exemplo serviu?

Achei interessante. Mas tenho que analisar, melhor. Já que no meu Model, ele não está no meu projeto UI. E Sim é o Transfer. Sem falar, que estou utilizando retorno de métodos com “n” atributos. Mas irei da uma olhada, em relação a está situação !

O model não precisa estar no projeto de UI para a validação funcionar.

Firmeza. Tava olhado o artigo, de Diego Neves. Achei bem interessante, como ele trata dos objetos sem data annotation ou sem exceptions.

Se tiver com objetivo de se manter no mercado essas soluções mais caseiras não vão te agregar tanto. Normalmente usam mais data annotations do próprio .NET ou a biblioteca Fluent Validation, que é a melhor solução pra não ficar poluindo as propriedades com data annotations.

Exato !!!

Mas o ruim é que com data annotations, o uso dos meus métodos irão por água “abaixooo”!
To analisando o artigo e irei da uma olhada no Fluent Validation. Por conhecimento e necessidade!

Seus métodos podem ser chamados de dentro do custom validation no data annotation. O mesmo vale pro Fluent, só que fica bem melhor.

Ainda remontando minha classe BO de validação com o Fluent Validation.
Comecei a da uma olhada agora mesmo. Irei analisar como irá ficar as minhas recursividades.

Quaisquer coisa aviso e posto, aqui !

Boa tarde.

Ainda iniciando o teste do projeto. Mas, com a ajuda do JavaFlex o mesmo me informou sobre o Fluent Validation. Tive que modificar o meu projeto, mas foi rápido. Ficando assim:

Meu modelo:

Meu BO ainda iniciando as validações:

Não mostrei as classes de todas as camadas, mas está valendo !!! Ainda iniciando em C# c/ ASP.NET , mas achando bem produtivo !!!


Ainda irei “alterar” ou refatorar o método de :


senão

mas passando três parâmetros e testando…

Desculpas por não ter postado antes !!!

Meu DAO com o meu método para verificar que já existi :

Meu BO:

Meu metodo no Meu BO para validar: