2010-07-19 16 views
4

J'ai ce lien sur une pageHtml.ActionLink(): new {route value} agit bizarrement. Je ne sais pas où la longueur = 17 paramètre vient

<% = Html.ActionLink(item.Title, "Edit", "ArticleManagement", 
         new { id = item.ArticleDataID })%> 

et une méthode simple pour recevoir l'article Id

public ActionResult Edit(int id) 
{ 
    //Do something 
} 

Malheureusement, je m obtenir une erreur » dictionnaire de paramètre contient une valeur nULL pour le paramètre id de int32 pour Edit (Int32) ... «

Quand je vérifie l'URL, je vois quelque chose comme » http://localhost:59786/ArticleManagement/Edit?Length=17 "

Qu'est-ce que" Longueur = 17 « ? et que fait-il là? Quoi qu'il en soit, jusqu'à présent, je travaille avec une collection qui ne contient que 3 éléments.

Merci de nous aider

Répondre

13

Vous devez ajouter null comme le dernier paramètre:

<%=Html.ActionLink("Title", "Edit", "ArticleManagement", 
     new { id = 1 }, new { @class = "link-class", attr = "attribute value" })%> 

Je pense que vous utilise des valeurs de route comme des attributs HTML sans nul.

+0

Cela a du sens maintenant. Ça marche maintenant. Donc, si je veux utiliser à la fois les valeurs de route et les attributs html, comment puis-je le faire? – Richard77

+1

Édité la réponse. – Castrohenge

+0

@Kieramaine: sympa. et merci beaucoup – Richard77

0

J'ai eu cela se produire aussi bien, il semble se produire lorsque le ActionLink ne peut pas correspondre à un itinéraire.

La longueur 17 correspond à la longueur de la gestion de l'article. Editer: Cela peut avoir quelque chose à voir avec la surcharge d'ActionLink.