2009-09-14 40 views
1

我剛開始使用asp.net的MVC .. 因爲我不熟悉它,我只想問一個關於ActionLink的HTML輔助的問題..html.actionlink

我有這樣的代碼在我的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%> 

如果我點擊ActionLink的,我期待它會令我這個網址: /行政/ NewsPublic/7 而是它給了我這個網址: /首頁/新聞公共?長度= 14

actionlink只傳遞id在同一個控制器中?

謝謝你提前!

回答

1

默認情況下,Html.ActionLink將使用當前控制器。但是大約有十幾個ActionLink重載,並且有多個版本可以接受控制器參數。嘗試:

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

感謝您的答覆.. 嗯,它給了我這個錯誤: 字段或屬性的名稱是在對象初始值設定項中初始化必須以'。'開頭。 我試過了。在「身份證」,但它說標識符的預期.. – tiff 2009-09-14 04:27:28

+1

是啊對不起... VB初始化器比C#更復雜,我可能沒有把它正確。嘗試「使用{.id = id}新建」。 – womp 2009-09-14 04:51:26

+0

你編輯過的一個工作!=) 謝謝! – tiff 2009-09-14 04:58:47

4

要呈現鏈接到/行政/ NewsPublic/7你應該使用

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

第五參數讓編譯器來選擇

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}