J'ai créé une table dans la base de données qui a un System.Guid comme clé primaire. Le modèle ADO.Net Entity Framework requis a été généré et les procédures stockées requises ont été mappées.L'utilisation d'un System.Guid comme clé primaire dans ASP.Net MVC?
J'ai créé un nouveau contrôleur et ajouté le code de base requis pour Créer et Modifier pour les données. Toutefois, lorsque le cliquant sur le lien pour modifier l'un enregistrement particulier l'erreur suivante est générée:
The parameters dictionary contains a null entry for parameter '[MyId]' of non-nullable type 'System.Guid' for method 'System.Web.Mvc.ActionResult Edit(System.Guid)' in '[MySite].[MyController].[SpecificController]'. To make a parameter optional its type should be either a reference type or a Nullable type. Parameter name: parameters
L'action d'édition est déclarée dans le contrôleur comme suit:
public ActionResult Edit(Guid itemId)
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(MyItem itemToModify)
{
}
Lors de l'ajout d'une nouvelle enregistrer le nouveau Guid est généré via une procédure stockée et la liste affiche le Guid correct. L'URL passe également le bon Guid pour la récupération.
Je n'arrive pas à capturer le point auquel cela échoue, mais comment est-ce que je passerais un System.Guid comme paramètre au contrôleur?
Maintenant, je me sens stupide de demander :( – BinaryMisfit
Ne vous inquiétez pas à ce sujet - la seule raison pour laquelle je savais la réponse est que j'ai fait la même chose une fois et devais le comprendre. – tvanfosson