none
@Html.PasswordFor() não retorna preenchido do meu controller, MVC4. RRS feed

  • Pergunta

  • Galera tenho um passwordFor na minha View, porem, mesmo ela sendo tipada e eu passando certinho a model de volta todos os campos são preenchido menos o a senha. 

    Existe uma solução para isso? 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    quinta-feira, 17 de outubro de 2013 13:55

Respostas

  • Fernando,

    Valide se a mesmo é nulo, caso seja retorne um string vazia mesmo:

    Html.PasswordFor(a => a.Senha, new { value = string.IsNullOrEmpty(Model.Senha) ? string.Empty : Model.Senha })
    Ou
    Html.PasswordFor(a => a.Senha, new { value = Model.Senha ?? string.Empty })


    Vitor Mendes | http://www.vitormendes.com.br/

    "Ajuda teu semelhante a levantar a sua carga, porém, não a carregá-la." (Pitágoras)

    • Marcado como Resposta Fernando Mamprin quinta-feira, 17 de outubro de 2013 14:56
    quinta-feira, 17 de outubro de 2013 14:34

Todas as Respostas

  • tenta isso

        @Html.PasswordFor(m => m.Password, new {value="Senha" })

    ou isso

       
    ModelState.SetModelValue("Password", new ValueProviderResult("senha", "", CultureInfo.InvariantCulture));
    quinta-feira, 17 de outubro de 2013 14:06
  • Olá Fernando,

    Creio que não exista muito sentido de trafegar este tipo de informação de volta para o usuário, este controle é projetado apenas para renderizar o input do tipo password que sera depois postado no servidor, caso você queira de fato força o preenchimento do mesmo use da propriedade value:

    Html.PasswordFor(a => a.Senha, new { value = Model.Senha })


    Vitor Mendes | http://www.vitormendes.com.br/

    "Ajuda teu semelhante a levantar a sua carga, porém, não a carregá-la." (Pitágoras)

    quinta-feira, 17 de outubro de 2013 14:07
  • Olá Fernando,

    Creio que não exista muito sentido de trafegar este tipo de informação de volta para o usuário, este controle é projetado apenas para renderizar o input do tipo password que sera depois postado no servidor, caso você queira de fato força o preenchimento do mesmo use da propriedade value:

    Html.PasswordFor(a => a.Senha, new { value = Model.Senha })


    Vitor Mendes | http://www.vitormendes.com.br/

    "Ajuda teu semelhante a levantar a sua carga, porém, não a carregá-la." (Pitágoras)

    Obrigado pelo retorno. 

    Vitor está dando erro de instância de objeto, no carregamento da página, pois a minha senha ainda estará nula.

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    quinta-feira, 17 de outubro de 2013 14:22
  • tenta isso

        @Html.PasswordFor(m => m.Password, new {value="Senha" })

    ou isso

       
    ModelState.SetModelValue("Password", new ValueProviderResult("senha", "", CultureInfo.InvariantCulture));

    Cesar, onde incluo o 

    ModelState.SetModelValue("Password", new ValueProviderResult("senha", "", CultureInfo.InvariantCulture));

    para que ele funcione corretamente?

    Abraço e obrigado pelo retorno. 


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    quinta-feira, 17 de outubro de 2013 14:23
  • Controller, mas esse não tenho 100% de certeza pq não tem como testar no momento.
    quinta-feira, 17 de outubro de 2013 14:25
  • Controller, mas esse não tenho 100% de certeza pq não tem como testar no momento.

    No que você seta o value="Senha", ele substitui a senha informada anteriormente pela string Senha. :/

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    quinta-feira, 17 de outubro de 2013 14:30
  • Fernando,

    Valide se a mesmo é nulo, caso seja retorne um string vazia mesmo:

    Html.PasswordFor(a => a.Senha, new { value = string.IsNullOrEmpty(Model.Senha) ? string.Empty : Model.Senha })
    Ou
    Html.PasswordFor(a => a.Senha, new { value = Model.Senha ?? string.Empty })


    Vitor Mendes | http://www.vitormendes.com.br/

    "Ajuda teu semelhante a levantar a sua carga, porém, não a carregá-la." (Pitágoras)

    • Marcado como Resposta Fernando Mamprin quinta-feira, 17 de outubro de 2013 14:56
    quinta-feira, 17 de outubro de 2013 14:34
  • Fernando,

    Valide se a mesmo é nulo, caso seja retorne um string vazia mesmo:

    Html.PasswordFor(a => a.Senha, new { value = string.IsNullOrEmpty(Model.Senha) ? string.Empty : Model.Senha })
    Ou
    Html.PasswordFor(a => a.Senha, new { value = Model.Senha ?? string.Empty })


    Vitor Mendes | http://www.vitormendes.com.br/

    "Ajuda teu semelhante a levantar a sua carga, porém, não a carregá-la." (Pitágoras)

    Obrigado Vitor funcionou filé. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    quinta-feira, 17 de outubro de 2013 14:55