Ce qui se passe lorsque j'essaie de créer l'entité à l'aide d'un de Créer un style d'action dans Asp.Net MVC 2.
Le POCO a les propriétés suivantes:
public int Id {get;set;}
[Required]
public string Message {get; set}
Sur la création de l'entité, le code est défini automatiquement, il n'est pas besoin pour cela sur l'action de création.
Le ModelState dit que "Le champ Id est nécessaire", mais je n'ai pas mis que de l'être. Est-il quelque chose d'automatique qui se passe ici?
MODIFIER la Raison, a Révélé
La raison pour laquelle la question est répondu par Brad Wilson, par Paul Speranza dans un des commentaires ci-dessous, où il dit (bravo Paul):
Vous êtes à fournir une valeur pour ID, vous venez de ne pas vous connaître ont été. C'est dans la route de données de la valeur par défaut itinéraire ("{controller}/{action}/{id}"), la valeur par défaut est vide la chaîne, qui n'est pas valide pour un int. L'utilisation de la [Lier] attribut sur votre le paramètre action d'exclure ID. Mon la route par défaut est: nouveau { controller = "Client", action = "Modifier", id = " " } // Valeurs par défaut des paramètres
EDIT - Modèle de mise à Jour technique
J'ai effectivement changé la façon dont je l'ai fait de nouveau en utilisant tryupdatemodel pour mettre et de les exclure de tableau de paramètres asscoiated.
[HttpPost]
public ActionResult Add(Venue collection)
{
Venue venue = new Venue();
if (TryUpdateModel(venue, null, null, new[] { "Id" }))
{
_service.Add(venue);
return RedirectToAction("Index", "Manage");
}
return View(collection);
}