Question
je commence tout juste à utiliser asp.net mvc .. comme je ne le connais pas, je veux juste poser une question à propos de actionlink html helper ..
J'ai ce code dans ma vue d'accueil index.aspx ..
<% Dim _news As datatable = ViewData.Model%>
<% For count As Integer = 0 To _news.Rows.Count - 1%>
<% Dim id As Integer = _news.Rows(count).Item("IDnews")%>
<%=_news.Rows(count).Item("newsTitle")%>
<p>
<%=_news.Rows(count).Item("newsContent")%><br />
<%=Html.ActionLink("Read More..", "NewsPublic", "Administration", New With {id})%>
</p>
<%Next%>
si je clique sur le lien action, je m'attendais à ce qu'il me rende l'URL suivante: / Administration / NewsPublic / 7 mais plutôt il me donne cette URL: / Accueil / NewsPublic? Length = 14
Actionlink transmet-t-il l'identifiant dans le même contrôleur uniquement?
merci d'avance!
La solution
Par défaut, Html.ActionLink utilisera le contrôleur actuel. Mais il existe environ une douzaine de surcharges de ActionLink () et plusieurs versions acceptant un paramètre de contrôleur. Essayez:
Html.ActionLink("Read More...",
"NewsPublic",
"Administration",
New With { .id = id },
null)
Autres conseils
Pour créer un lien vers / Administration / NewsPublic / 7 , vous devez utiliser
.<%=Html.ActionLink("Read More..", "NewsPublic", "Administration",
New With {.id = 7}, Nothing)%>
Le cinquième paramètre oblige le compilateur à choisir
ActionLink(string linkText, string actionName, string controllerName,
object routeValues, object htmlAttributes)
surcharge de la méthode d'extension au lieu de
ActionLink(string linkText, string actionName, object routeValues,
object htmlAttributes)
Et n'oubliez pas d'ajouter le paramétrage
New With {.id = 7}
au lieu de
New With {.id}