Ich habe eine Tabelle in der Datenbank erstellt, die eine System.Guid als Primärschlüssel hat. Das erforderliche ADO.Net Entity Framework Modell wurde generiert und die erforderlichen gespeicherten Prozeduren wurden zugewiesen.
Ich habe einen neuen Controller erstellt und den grundlegenden erforderlichen Code zum Erstellen und Bearbeiten der Daten hinzugefügt. Wenn Sie jedoch auf den Link klicken, um einen bestimmten Datensatz zu bearbeiten, wird der folgende Fehler erzeugt:
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
Die Bearbeitungsaktion wird im Controller wie folgt deklariert:
public ActionResult Edit(Guid itemId)
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(MyItem itemToModify)
{
}
Beim Hinzufügen eines neuen Datensatzes wird die neue Guid über eine Stored Procedure generiert und die Liste zeigt die korrekte Guid an. Die Url übergibt ebenfalls die korrekte Guid für den Abruf.
Ich kann nicht scheinen, um den Punkt zu erfassen, an dem dies fehlschlägt, aber wie würde ich über die Übergabe einer System.Guid als Parameter an den Controller gehen?