Wie Sie angeben-controller im ActionLink-html-Helfer in C#
Ich habe eine web-Anwendung entwickelt, in ASP.NET MVC3 mit C# und Razor.
Möchte ich den Aufruf eines bestimmten Action-Methode einer bestimmten Controller mithilfe der ActionLink HTML-helper. Ich weiß, dass der zweite parameter von ActionLink gibt die Action-Methode aufgerufen werden, aus der Default-route, das ist der einzige in meinem Global.asax Datei:
routes.MapRoute(
"Default", //Route name
"{controller}/{action}/{id}", //URL with parameters
new { controller = "Index", action = "Index", id = UrlParameter.Optional } //Parameter defaults
);
Ich würde gerne die Download Action-Methode aus der Hause Controller anstelle von Index. Funktioniert nicht:
@Html.ActionLink("Presentation", "Download", "Home", new { topicId = topic.TopicId } )
Bedarf es als Dritten parameter einen Object-Typ, aber ich kann nicht finden Sie auf der web-beliebiges Beispiel.
Welche Schritte sind erforderlich, um eine bestimmte Controller - /ActionMethod? Soll ich erstellen eine andere route in mein Global.asas Datei?
Dank
InformationsquelleAutor CiccioMiami | 2011-07-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese:
Den Dritten parameter, Objekt: routeValues, wird als Wörterbuch Asp.net MVC. Phil Haacked gebloggt über die Entscheidung für die Verwendung von Objekt als route-Werten.
update:
Ihre überlast-Funktion wird nicht arbeiten, weil Sie anrufen diese Methode. String ist auch Objekt. So, Sie sind vorbei
"Home"
als routeValues undnew { topicId = topic.Id}
als htmlAttributes. 🙂AFAIK, es sollten die gleichen sein, die in MVC2. 🙂
InformationsquelleAutor Soe Moe
Ist diese der überlastung, die Sie benötigen? Sie müssen die 5. parameter für html-Attribute.
Denn das war dieser der überlastung, unterstützt das festlegen aller Parameter, die Sie wollte. Sie können gerade im Stande sein, verwenden Sie null als letzter parameter, aber ich war nicht sicher, so steckte ich einfach null. Andernfalls geben Sie eine leere Wörterbuch.
InformationsquelleAutor Bob Vale