質問

私はちょうど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}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top