none
Exibir mensagem de erro RRS feed

Respostas

  • Pelo que estou entendendo, a sua dificuldade não é a validação do erro em si, mas sim como exibir esse erro em um popup para o usuário.

    Uma maneira simples para exibir um popup ou talvez um modal em uma <DIV>, seria capturar o erro na action e setar alguma variável de erro, por exemplo:

    try {
      // faz alguma coisa
    }
    catch(Exception e){
       ViewBag.Erro = "Ocorreu o erro XPTO";
    }


    Então na minha View eu poderia chegar o conteúdo desta variável e se possuir algum valor, apresentar o popup. A grosso modo algo assim:

    <script>
       if(@ViewBag.Erro != null && @ViewBag.Erro != ''){
           alert(@ViewBag.Erro);
       }
    </script>



    Renato Person | MCPD

    • Sugerido como Resposta Renato Person quinta-feira, 3 de abril de 2014 11:19
    • Marcado como Resposta CEFL sexta-feira, 4 de abril de 2014 00:38
    quinta-feira, 3 de abril de 2014 11:18

Todas as Respostas

  • Olá CEFL, blz?

    já usou o ModelState.AddModelError("","") ?

    Dê uma olhada nos link abaixo, tem alguns exemplos que podem te ajudar.

    http://stackoverflow.com/questions/12936604/how-to-add-modelstate-addmodelerror-message-when-model-item-is-not-binded


    Wennder Santos

    segunda-feira, 24 de março de 2014 21:41
  • esse exemplo deu certo.

    mas se eu quiser exibir uma Div ao invés de enviar usando o ModelState?

    segunda-feira, 24 de março de 2014 21:57
  • Use o atributo [HandleError] no seu controller ou actions individuais.

    No seu web.config:

    <customErrors mode="On" defaultRedirect="Error" />

    Crie a View "Error.cshtml" na pasta \Views\Shared:

    @model System.Web.Mvc.HandleErrorInfo   
    <h1> Erro ao processar a solicitação. </h1> 
    <h2 class="menssagem-erro">Detalhes:</h2>  
    <div>@Model.Exception.Message</div>   


    terça-feira, 25 de março de 2014 01:53
    Moderador
  • mas ele vai redirecionar para a página ou vai abrir em cima da pagina onde eu estiver?

    o que eu preciso é algo semelhante aos popup usados no webforms, faça a validação no código e mando exibir o popup.

    sexta-feira, 28 de março de 2014 17:40
  • No WebForms eu fazia assim:

    If (Classe.Inserir(p) > 0)

    {

    divMensagem.visible=true;

    lblMensagem.text="Registro inserido com sucesso";

    }

    Essa Div abriu em Modal com o botão OK.

    Quero fazer a mesma coisa em MVC 4.

    domingo, 30 de março de 2014 14:20
  • Use TempData

    No controller:

    [HttpPost]
    public ActionResult MinhaAction(MeuModelo bla)
    {
        if(ModelState.IsValid)
        {
            //processa bla
            TempData["msg"] = "Bla inserido com sucesso";
            //Retorna View() ou RedirectToAction()
        }
        //...
    }

    Na view:

      
    @if(TempData["msg"] != null)
    {
       <div id="mensagem">
           @TempData["msg"]
       </div>
    }



    quinta-feira, 3 de abril de 2014 02:32
    Moderador
  • Pelo que estou entendendo, a sua dificuldade não é a validação do erro em si, mas sim como exibir esse erro em um popup para o usuário.

    Uma maneira simples para exibir um popup ou talvez um modal em uma <DIV>, seria capturar o erro na action e setar alguma variável de erro, por exemplo:

    try {
      // faz alguma coisa
    }
    catch(Exception e){
       ViewBag.Erro = "Ocorreu o erro XPTO";
    }


    Então na minha View eu poderia chegar o conteúdo desta variável e se possuir algum valor, apresentar o popup. A grosso modo algo assim:

    <script>
       if(@ViewBag.Erro != null && @ViewBag.Erro != ''){
           alert(@ViewBag.Erro);
       }
    </script>



    Renato Person | MCPD

    • Sugerido como Resposta Renato Person quinta-feira, 3 de abril de 2014 11:19
    • Marcado como Resposta CEFL sexta-feira, 4 de abril de 2014 00:38
    quinta-feira, 3 de abril de 2014 11:18