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!
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}