2012-03-27 3 views
0

Ich versuche, eine einfache ListView/Detailview-Funktion in einer unserer Anwendungen zu implementieren. Ich benutze das MVCContrib Grid (was übrigens toll ist!), Um die Liste der Elemente anzuzeigen. Neben jeder Zeile im Raster befindet sich ein Bearbeitungslink, mit dem der Benutzer das Element bearbeiten kann. Wenn die Benutzer auf den Link zum Bearbeiten klicken, führe ich einen Get aus, der das Detailformular zurückgibt, mit dem das Element bearbeitet wurde. Aus irgendeinem Grund kann die angeklickte customerId nicht an den Controller gesendet werden. Der Controller erhält nur jedes Mal null, wenn ich auf den Bearbeitungslink klicke.MVCContrib Grid-Wert ist immer Null, wenn auf HTML.ActionLink geklickt wird

Mein Gitter ist wie so konfigurieren:

Html.Grid(Model.CheckAccounts) 
    .Columns(column.For(c => {Html.ActionLink(
    "Edit", 
    "CustomerDetails", 
    "CustomerManagementController", 
    new {Id=customer.Id})); 
column.For(c => c.Name); 
column.For(a => c.AccountNumber); 
}).Render(); 

hier meine Controller Aktion:

[HttpGet] 
     public ActionResult CustomerDetails(long? Id) 
     { 
      //fetch the customer from repo... 
      //return it to the client 
      return View(model); 
     } 

ich total verwirrt bin, da alle Proben und Blogs, die ich gesehen habe, Zugang Daten aus dem Grid genauso wie ich es mache. Kann jemand helfen?

Antwort

0

Ich hasse meine eigene Frage zu beantworten, aber ich war in der Lage, dies zu beheben, indem Sie den Aktionslink zu ändernden:

{Html.ActionLink(
     "Edit", 
     "CustomerDetails", 
     "CustomerManagement", 
     new {Id=customer.Id})); 

ich der falschen Aktionslink realisiert wurde an der „Länge nach der Suche = 24 erzeugt wird "queryString-Parameter am Ende der URL.

Das Gitter funktioniert jetzt wie erwartet.

Verwandte Themen