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!

Était-ce utile?

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}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top