none
ModelBinder em ActionResult [Post] RRS feed

  • Pergunta

  • Olá pessoal,

    Quando realizo um post os dados do formulário automaticamente preenche os campos do objeto que será persistido no banco, mesmo se eu setar um outro valor para a propriedade esse mesmo salva o valor do form.

     

        [Authorize]
        [HttpPost]
        public ActionResult Editar(int id, FormCollection formCollection)
        {
    
            var registro = _db.Tabela1.Single(x => x.cod_campo == id);
    
            registro.status = "A";
    
            UpdateModel(registro);
            _db.SaveChanges();
    

    Mesmo assim o valor salvo não é A e sim o que está no form html.

    Alguém sabe como desabilitar??

     

    Grato.


    Cristian Mathias
    quinta-feira, 12 de maio de 2011 23:45

Respostas

  • Olá, Cristian.

    Se quiser forçar o valor do status para 'A', coloque o código de atribuição do status após a chamada do método UpdateModel, conforme abaixo:

    UpdateModel(registro);
    registro.status = "A";
    

    Abraços,


    Paulo Castilho - www.paulocastilho.com.br
    sexta-feira, 13 de maio de 2011 11:57

Todas as Respostas

  • Olá, Cristian.

    Se quiser forçar o valor do status para 'A', coloque o código de atribuição do status após a chamada do método UpdateModel, conforme abaixo:

    UpdateModel(registro);
    registro.status = "A";
    

    Abraços,


    Paulo Castilho - www.paulocastilho.com.br
    sexta-feira, 13 de maio de 2011 11:57
  • Porque deve ser utilizado o UpdateModel sendo que o registro é persistido no SaveChanges? O método UpdateModel está relacionado ao Controller, certo? Se fosse um projeto WebForms esse método não estaria disponível....

    Grato.


    Cristian Mathias
    sexta-feira, 13 de maio de 2011 19:03
  • Já descobri, o UpdateModel serve para popular um objeto (model) com os dados de um FormCollection por exemplo.

    Abraço.


    Cristian Mathias
    sexta-feira, 13 de maio de 2011 19:18