1

asp.net mvc を使い始めたばかりです。詳しくないので、actionlink html ヘルパーについて質問したいだけです。

私はこのコードを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 が表示されると思っていました: /Administration/NewsPublic/7 ではなく、次の URL が表示されます: /Home/NewsPublic?Length=14

actionlink は同じコントローラーでのみ ID を渡しますか?

前もって感謝します!

4

2 に答える 2

4

/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}
于 2009-09-14T05:07:59.897 に答える
1

デフォルトでは、Html.ActionLink は現在のコントローラーを使用します。しかし、ActionLink() には約 12 のオーバーロードがあり、コントローラー パラメーターを受け入れる複数のバージョンがあります。試す:

Html.ActionLink("Read More...", 
                 "NewsPublic", 
                 "Administration",
                 New With { .id = id },
                 null)
于 2009-09-14T04:11:01.703 に答える