2009-09-14 9 views
1

je viens juste de commencer à utiliser asp.net mvc .. depuis que je ne suis pas familier avec elle, je veux juste poser une question sur aide ActionLink html ..Html.ActionLink

j'ai ce code dans mon index.aspx vue à la maison ..

<% 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 ActionLink, je l'attendais me rendre à l'adresse suivante: /administration/NewsPublic/7 mais il me donne cette url: /Home/NewsPublic? Length = 14

Est-ce que l'ID de l'actionlink passe dans le même contrôleur uniquement?

merci d'avance!

Répondre

1

Par défaut, Html.ActionLink utilisera le contrôleur actuel. Mais il y a environ une douzaine de surcharges d'ActionLink(), et il y en a plusieurs versions qui accepteront un paramètre de contrôleur. Essayez:

Html.ActionLink("Read More...", 
       "NewsPublic", 
       "Administration", 
       New With { .id = id }, 
       null) 
+0

merci pour votre réponse .. um, il me donne cette erreur: Nom du champ ou de la propriété étant initialisé dans un initialiseur d'objet doit commencer par '.'. j'ai essayé de mettre. dans le "id", mais il est dit identificateur attendu .. – tiff

+1

Ouais désolé ... VB initialiseurs sont plus compliqués qu'en C#, je n'ai probablement pas compris. Essayez "Nouveau avec {.id = id}". – womp

+0

celui que vous avez édité travaillé! =) merci! – tiff

4

Pour rendre lien vers /Administration/NewsPublic/7 vous devez utiliser

<%=Html.ActionLink("Read More..", "NewsPublic", "Administration", 
    New With {.id = 7}, Nothing)%> 

cinquième paramètre fait compilateur de choisir

ActionLink(string linkText, string actionName, string controllerName, 
    object routeValues, object htmlAttributes) 

surcharge de méthode d'extension au lieu de

ActionLink(string linkText, string actionName, object routeValues, 
    object htmlAttributes) 

Et ne pas oublier d'ajouter l'affectation des paramètres

New With {.id = 7} 

au lieu de

New With {.id} 
Questions connexes