2016-12-03 2 views
0

J'utilise Visual Studio 2015 avec le langage C# et la version MVC 4.Obtenir la valeur null dans le paramètre en ActionResult de cliquer ActionLink sur différents actionmethod contrôleur

J'appelle le actionmethod sur différents Controller sur événement, cliquez ActionLink.

@Html.ActionLink(item.ListingDate.ToString("MM/dd/yyyy"), "MyActionMethod", "ControllerName", item.Id , null) 

il appelle le actionmethod correctement mais je reçois nulle comme valeur dans ActionMethod Id:

public async Task<ActionResult> MyActionMethod(string Id) // it is coming null here 
{ 
     //Mycode 
} 
+0

@StephenMuecke Je l'ai essayé avant même mais en obtenant la valeur null mais maintenant il vient la magie étonnante ne sais pas ce qui se produit mais il fonctionne merci –

Répondre

1

Le nom de votre paramètre est Id de sorte que vous devez créer un objet avec ce nom

@Html.ActionLink(
    item.ListingDate.ToString("MM/dd/yyyy"), 
    "MyActionMethod", 
    "ControllerName", 
    new { id = item.Id }, // change this 
    null) 
+0

Selon ma connaissance dge je pense que je ne devrais pas écrire id = item.Id droite, je peux envoyer na variable directe! Peut-être que je pourrais me tromper. –

+0

Votre code actuel n'ajoutera pas de valeur de route donc sa création juste '../ ControllerName./MyActionMethod', pas' ../ ControllerName./MyActionMethod/someValue' –

+0

Remarque Je vous ai rejeté edit - Le 'DefaultModelBinder' n'est pas le cas sensitive - 'new {id = item.Id}' ou 'new {Id = item.Id}' ou 'new {iD = item.Id}' ou 'new {ID = item.Id}' sont tous identiques et seront lier correctement. –