Mon application MVC2 me donne la douleur aujourd'hui ... Je veux modifier un enregistrement de base de données, en utilisant le code contrôleur suivant:MVC2 jette InvalidOperationException dans UpdateModel(), en essayant de mettre à jour le champ id
[AcceptVerbs(HttpVerbs.Post), Authorize(Roles = "Admin")]
public virtual ActionResult Edit(int id, FormCollection formValues)
{
var masterDataProxy = MasterDataChannelFactory.OpenChannel();
var tester = masterDataProxy.GetTester(id);
masterDataProxy.CloseChannel();
if (null == tester)
{
return View(Views.NotFound);
}
try
{
UpdateModel(tester);
var adminProxy = AdminChannelFactory.OpenChannel();
adminProxy.AddUpdateTester(tester);
adminProxy.CloseChannel();
return RedirectToAction(Actions.Index());
}
catch (Exception ex)
{
ModelState.AddModelError("Tester", ex.Message);
return View(tester);
}
}
I obtiens l'exception de haut niveau "Le modèle de type" Model.Entity "n'a pas pu être mis à jour", et quand je descends dans ModelState je vois qu'il échoue en essayant de mettre à jour le champ Id - "Définition de la propriété Id est seulement supporté avec .NET 3.5+ pendant la désérialisation d'entité ".
La question est, comment puis-je dire à UpdateModel() de ne pas mettre à jour le champ Id? Je ne veux pas qu'il mette à jour ce champ !!
Des idées? Dave
Merci! C'était exactement ce que je cherchais ... – DaveN59