Qual é o comportamento correto do UpdateModel no ASP.NET MVC?

Estou interessado em saber o que vocês acham que deve ser considerado "comportamento correto" em termos deUpdateModel método no asp.net MVC.

A razão pela qual eu pergunto aqui é, talvez, se essa funcionalidade é "por design", alguém poderia esclarecer por que ela é assim, e talvez uma maneira de chamá-la de forma diferente para alcançar a funcionalidade desejada, o que eu imagino % de pessoas gostaria que isso funcionasse?

Em essência, minha queixa é com o comportamento do processo de ligação dentroUpdateModel.

Supondo que você deseja atualizar um formulário através de um simplesSave método de ação para o qual os campos de dados no formulário refletem um modelo em seu banco de dados, inicialmente para salvar a solicitação, podemos obter o modelo existente do banco de dados e atualizar os campos relevantes que foram alterados, enviados por meio deFormCollection e depois atualizado porUpdateModel ao nosso modelo existente. Isso funciona, no entanto, parece que qualquer uma das propriedades existentes neste objeto preenchido pelo banco de dados está sendo "redefinida"; e por isso quero dizer, estão sendo definidos como padrões nulos ou de inicialização, como se fosse um novo objeto, exceto, obviamente, aqueles que correspondem aos doFormCollection.

Isso é um problema porque as propriedades existentes que existem no objeto, mas não necessariamente existem no formulário, como quaisquer coleções ou objetos filhos, datas ou campos que não sejam da interface do usuário estão vazios, deixando-o com um meio-povoado, mais ou objeto menos inutilizável que não pode ser salvo no banco de dados devido a todos os dados ausentes, incluindo provavelmente uma pilha de IDs agora definida como 0.

Eu acredito que isso não é um comportamento desejável, eUpdateModel só deve atualizar as propriedades onde encontrar uma correspondência de propriedadeFormCollection. Isso significaria que todas as suas propriedades existentes seriam intocadas, mas suas atualizações seriam definidas. No entanto, do que foi deduzido até agora, obviamente este não é o caso - parece que instancianova cópia do objeto atualiza as propriedades do formulário e retorna o novo objeto.

Finalmente, para colocar em perspectiva o quanto isso é um fardo, a única maneira de salvar um formulário meio complexo e manter todos os dados de objetos existentes é casar manualmente.cada propriedade com a propriedade de formulário correspondente para garantir absolutamente apenas as propriedades que existem no formulário estão sendo atualizadas.

Eu acho,

Aqueles que concordam que isso é intencional, é a minha forma de se casar da melhor maneira?Ou, como você abordou isso?

Por favor, sinta-se livre para oferecer seus pensamentos sobre este pessoal, obrigado.

Aqui está outro exemplo de alguém que sofre deste problema:
Chamar UpdateModel com uma coleção de tipos de dados complexos redefinir todos os valores não vinculados?

questionAnswers(4)

yourAnswerToTheQuestion