Domanda

Sto appena iniziando a usare asp.net mvc .. dal momento che non ho familiarità con esso, voglio solo fare una domanda su helper HTML link Actionlink

Ho questo codice nella mia vista home 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%>

se faccio clic sul link di azione, mi aspettavo che mi avrebbe reso questo URL: / Amministrazione / NewsPublic / 7 ma piuttosto mi dà questo url: / Home / NewsPublic? Lunghezza = 14

actionlink passa l'ID solo nello stesso controller?

grazie in anticipo!

È stato utile?

Soluzione

Per impostazione predefinita, Html.ActionLink utilizzerà il controller corrente. Ma ci sono circa una dozzina di sovraccarichi di ActionLink () e ne esistono più versioni che accettano un parametro controller. Prova:

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

Altri suggerimenti

Per rendere il collegamento a / Administration / NewsPublic / 7 dovresti usare

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

Il quinto parametro consente al compilatore di scegliere

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

sovraccarico del metodo di estensione anziché

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

E non dimenticare di aggiungere l'assegnazione dei parametri

New With {.id = 7}

anziché

New With {.id}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top