2009-05-04 9 views
3

Let sagen, dass ich auf der Seite „Home/Index“ bin und ich möchte auf die Seite MyOtherController/Index/1Asp.Net MVC Anruf eine andere Steuerung aus Sicht

gehen Wie kann ich das tun?

Ich versuche:

<%= Html.ActionLink("Test", "Index", "MyOtherController", new { id=item.Id }) %>

Habe ich auch eine Route in Global.aspx Datei hinzufügen?

Antwort

8

Eine Möglichkeit ist, den Namen des Controllers in der Liste der Routevalues ​​angeben:

<%= Html.ActionLink("Test", "Index" 
    , new { controller = "MyOtherController", id = item.Id }) %>

Eine Alternative ist die Überlastung von ActionLink mit htmlAttributes = null zu verwenden:

<%= Html.ActionLink("Test", "Index" 
    , "MyOtherController", new { id = item.Id }, null) %>

Die Standardroute in Die ASP.NET MVC-Vorlage übernimmt in diesem Fall das Routing.

1

Ich glaube nicht, dass ActionLink eine Überladung hat, die dieser bestimmten Signatur entspricht. Sie müssen nach Ihren Routenwerten "null" hinzufügen, um einen passenden Wert zu finden (für htmlAttributes). Ole's Lösung wäre sauberer, also ist es wirklich eine Frage der Präferenz. Es wird auch bei der Lesbarkeit helfen, so dass Sie nicht erraten müssen, ob jeder Parameter ein Linktext, eine Aktion/ein Controller usw. ist.

Verwandte Themen