Frage

ich bin gerade erst asp.net Mvc verwenden .. da ich nicht mit ihm vertraut bin, ich möchte nur eine Frage zu Action html Helfer fragen ..

Ich habe diesen Code in meiner index.aspx Wohnansicht ..

    <%  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%>

wenn ich den Actionlink klicken, erwarte ich es mich auf diese URL machen wird: / Verwaltung / NewsPublic / 7 sondern es gibt mir diese URL: / Home / NewsPublic? Länge = 14

tut Action nur id in demselben Controller passieren?

Vielen Dank im Voraus!

War es hilfreich?

Lösung

In der Standardeinstellung Html.ActionLink wird die aktuellen Controller verwenden. Aber es gibt etwa ein Dutzend Überlastungen von Action (), und es gibt mehrere Versionen davon, die einen Controller Parameter akzeptiert. Versuchen Sie:

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

Andere Tipps

Um einen Link auf / Verwaltung / NewsPublic / 7 machen sollten Sie verwenden

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

Fünfter Parameter macht Compiler wählen

ActionLink(string linkText, string actionName, string controllerName, 
    object routeValues, object htmlAttributes)

Erweiterung -Methodenüberladung statt

ActionLink(string linkText, string actionName, object routeValues, 
    object htmlAttributes)

Und vergessen Sie nicht Parametrierung hinzufügen

New With {.id = 7}

statt

New With {.id}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top