質問
私はちょうどasp.net mvcを使用し始めています。 私はそれに詳しくないので、actionlink htmlヘルパーについて質問したいだけです。
i 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%>
アクションリンクをクリックすると、このURLに表示されると期待していました。 /管理/ニュース公開/ 7 むしろそれは私にこのURLを与えます: / Home / NewsPublic?Length = 14
actionlinkは同じコントローラーでのみidを渡しますか?
事前に感謝します!
解決
デフォルトでは、Html.ActionLinkは現在のコントローラーを使用します。ただし、ActionLink()には約12のオーバーロードがあり、コントローラーパラメーターを受け入れる複数のバージョンがあります。試してください:
Html.ActionLink("Read More...",
"NewsPublic",
"Administration",
New With { .id = id },
null)
他のヒント
/ Administration / NewsPublic / 7 へのリンクをレンダリングするには、
を使用する必要があります<%=Html.ActionLink("Read More..", "NewsPublic", "Administration",
New With {.id = 7}, Nothing)%>
5番目のパラメーターにより、コンパイラーは選択を行います
ActionLink(string linkText, string actionName, string controllerName,
object routeValues, object htmlAttributes)
ではなく拡張メソッドのオーバーロード
ActionLink(string linkText, string actionName, object routeValues,
object htmlAttributes)
そして、パラメータの割り当てを追加することを忘れないでください
New With {.id = 7}
の代わりに
New With {.id}
所属していません StackOverflow