none
ASP.NET MVC : Mensagens de alerta RRS feed

  • Pergunta

  • Olá Desenvolvedores, bom dia !

    Como exibir uma alerta/mensagem de usuário inexistente dentro do .cs, ou seja, no HomeController.cs ?

    Eu não gostaria de criar uma nova View somente para exibir esta mensagem. Já tente com JavaScript mas,

    esta dando erro......

    Grato !!

            [HttpPost]
            public ActionResult Index(logarPortal dadosUsuario)
            {                      
                if (ModelState.IsValid)
                {
                    string vPcName = System.Net.Dns.GetHostName();                
                    var contexto = new Contexto();
                    SqlDataReader dr = contexto.ExecutaComandoComRetorno("Select DesPastaProd,DesSenhaAcesso from tb_clientes where DesPastaProd='" + dadosUsuario.usuarioNome.Trim().ToUpper() + "'");
                    if (dr.Read())
                    {
                        if (dr["DesSenhaAcesso"].ToString().Trim().ToUpper() == dadosUsuario.usuarioSenha.Trim().ToUpper())
                        {
                            ViewBag.usuarioOnLine = dr["DesPastaProd"].ToString();                        
                            Session["usuariologado"] = dr["DesPastaProd"].ToString();
                            dr.Close();
                            return View("Index", dadosUsuario);
                        }
                        else
                        {    
                            //aqui dentro da ActionResult, no HomeController.cs
                            //abrir uma MessageBox *** mensagem de usuario inexistente!                        
                        }
                    }
                }
    
                return View("LogarPortal");
            }
    


    Gilberto Herminio Analista de Desenvolvimento de Sistemas Mogi das Cruzes-SP desenvolvedor.ti@r7.com / gil_haf@ig.com.br

    sábado, 23 de abril de 2016 14:44

Respostas

  • Boa tarde, 

    Gilberto, existe inúmeras maneira de fazer isso. Precisa ver qual atende melhor sua necessidade:

    1 - Incluir um atributo na sua classe "logarPortal", preencher este atributo e retornar a classe. Exemplo: Dentro da classe ter um atributo, "MensagemRetorno" assim você atribuiria a mensagem de usuário inexistente e retornava o objeto. Na "View" você verifica mostra a "MensagemRetorno".

    2 - Fazer a requisição Ajax, você tem um controle legal do retorno.

    3 - Adicionar uma mensagem na "ViewBag", retornar para sua "View" e verificar se a "ViewBag" está preenchida. Exemplo:
    Controller

    [HttpPost]
            public ActionResult Index(logarPortal dadosUsuario)
            {
                if (ModelState.IsValid)
                {
                    string vPcName = System.Net.Dns.GetHostName();
                    var contexto = new Contexto();
                    SqlDataReader dr = contexto.ExecutaComandoComRetorno("Select DesPastaProd,DesSenhaAcesso from tb_clientes where DesPastaProd='" + dadosUsuario.usuarioNome.Trim().ToUpper() + "'");
                    if (dr.Read())
                    {
                        if (dr["DesSenhaAcesso"].ToString().Trim().ToUpper() == dadosUsuario.usuarioSenha.Trim().ToUpper())
                        {
                            ViewBag.usuarioOnLine = dr["DesPastaProd"].ToString();
                            Session["usuariologado"] = dr["DesPastaProd"].ToString();
                            dr.Close();
                            return View("Index", dadosUsuario);
                        }
                        else
                        {
                            //aqui dentro da ActionResult, no HomeController.cs
                            ViewBag.Alerta = "Usuario inexistente";                     
                        }
                    }
                }
    
                return View("LogarPortal");
            }

    View

    @if (ViewBag.Alerta != string.Empty)
    {
        <script type="text/javascript">
            alert('@ViewBag.Alerta');
        </script>
    }

    Observação: Este é apenas um exemplo e por este motivo utilizei o "alert" mesmo. Mas você pode utilizar o "Modal Dialog".

    Espero ter ajudado

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Marcado como Resposta Marcos SJ segunda-feira, 25 de abril de 2016 16:52
    sábado, 23 de abril de 2016 16:21

Todas as Respostas

  • Boa tarde, 

    Gilberto, existe inúmeras maneira de fazer isso. Precisa ver qual atende melhor sua necessidade:

    1 - Incluir um atributo na sua classe "logarPortal", preencher este atributo e retornar a classe. Exemplo: Dentro da classe ter um atributo, "MensagemRetorno" assim você atribuiria a mensagem de usuário inexistente e retornava o objeto. Na "View" você verifica mostra a "MensagemRetorno".

    2 - Fazer a requisição Ajax, você tem um controle legal do retorno.

    3 - Adicionar uma mensagem na "ViewBag", retornar para sua "View" e verificar se a "ViewBag" está preenchida. Exemplo:
    Controller

    [HttpPost]
            public ActionResult Index(logarPortal dadosUsuario)
            {
                if (ModelState.IsValid)
                {
                    string vPcName = System.Net.Dns.GetHostName();
                    var contexto = new Contexto();
                    SqlDataReader dr = contexto.ExecutaComandoComRetorno("Select DesPastaProd,DesSenhaAcesso from tb_clientes where DesPastaProd='" + dadosUsuario.usuarioNome.Trim().ToUpper() + "'");
                    if (dr.Read())
                    {
                        if (dr["DesSenhaAcesso"].ToString().Trim().ToUpper() == dadosUsuario.usuarioSenha.Trim().ToUpper())
                        {
                            ViewBag.usuarioOnLine = dr["DesPastaProd"].ToString();
                            Session["usuariologado"] = dr["DesPastaProd"].ToString();
                            dr.Close();
                            return View("Index", dadosUsuario);
                        }
                        else
                        {
                            //aqui dentro da ActionResult, no HomeController.cs
                            ViewBag.Alerta = "Usuario inexistente";                     
                        }
                    }
                }
    
                return View("LogarPortal");
            }

    View

    @if (ViewBag.Alerta != string.Empty)
    {
        <script type="text/javascript">
            alert('@ViewBag.Alerta');
        </script>
    }

    Observação: Este é apenas um exemplo e por este motivo utilizei o "alert" mesmo. Mas você pode utilizar o "Modal Dialog".

    Espero ter ajudado

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Marcado como Resposta Marcos SJ segunda-feira, 25 de abril de 2016 16:52
    sábado, 23 de abril de 2016 16:21
  • Obrigado por retorno, Silvaney!!

    Vou tentar com suas dicas!!!


    Gilberto Herminio Analista de Desenvolvimento de Sistemas Mogi das Cruzes-SP desenvolvedor.ti@r7.com / gil_haf@ig.com.br

    sábado, 23 de abril de 2016 22:38
  • Outra forma de resolver o problema, é utilizando JQuery.
    sexta-feira, 28 de abril de 2017 15:31
  • thread movida para fórum aspnet mvc
    segunda-feira, 1 de maio de 2017 12:23
    Moderador