HTML.ActionLink-Methode
Sagen wir, ich habe eine Klasse
public class ItemController:Controller
{
public ActionResult Login(int id)
{
return View("Hi", id);
}
}
Auf einer Seite, befindet sich nicht im Ordner, wo ItemController
wohnt, ich möchte einen link erstellen, der auf die Login
Methode. So, die Html.ActionLink
Methode, die ich verwenden sollte und welche Parameter sollte ich gehen?
Speziell, ich bin auf der Suche für den Ersatz der Methode
Html.ActionLink(article.Title,
new { controller = "Articles", action = "Details",
id = article.ArticleID })
wurde, im Ruhestand in der jüngsten ASP.NET MVC-Inkarnation.
InformationsquelleAutor der Frage Graviton | 2008-10-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, was Sie wollen, ist dies:
ASP.NET MVC1
Diesem wird die folgende Methode verwendet ActionLink Signatur:
ASP.NET MVC2
zwei Argumente gewechselt wurden, um
Diesem wird die folgende Methode verwendet ActionLink Signatur:
ASP.NET MVC3+
Argumente in der gleichen Reihenfolge wie in MVC2, jedoch ist der Wert der id ist nicht mehr erforderlich:
Dies vermeidet Festplatten-Kodierung, routing-Logik in den link.
Dadurch erhalten Sie die folgende html-Ausgabe, Annahme:
article.Title = "Title"
article.ArticleID = 5
.
.
InformationsquelleAutor der Antwort Joseph Kingry
Wollte ich hinzufügen Joseph Kingry Antwort. Er lieferte die Lösung, aber zuerst konnte ich mich gar nicht, dass es funktioniert entweder und bekam ein Ergebnis wie Adhip Gupta. Und dann erkannte ich, dass die route hat zu existieren, an Erster Stelle und die Parameter müssen übereinstimmen, die route genau. So hatte ich eine id und dann ein text-parameter, die für meine route, die auch benötigt werden, enthalten zu.
InformationsquelleAutor der Antwort Jeff Widmer
Vielleicht möchten Sie sich an der
RouteLink()
Methode.Dass man Sie angeben können alles (außer dem link-text und route-name) über ein Wörterbuch.InformationsquelleAutor der Antwort Haacked
Ich denke, dass Joseph gespiegelt, controller und action. Zuerst kommt die Handlung, dann der controller. Das ist etwas seltsam, aber die Art, wie die Signatur aussieht.
Nur zur Verdeutlichung, dies ist die version, die funktioniert (adaption von Joseph ' s Beispiel):
InformationsquelleAutor der Antwort agez
InformationsquelleAutor der Antwort Adhip Gupta
was über diese
InformationsquelleAutor der Antwort Hasan
Wenn Sie möchten, gehen alle fancy-pants, hier ist, wie können Sie es verlängern, um in der Lage sein, dies zu tun:
Müssen Sie diese in den
System.Web.Mvc
namespace:Diese umfasst zwei überschreibt für
Route Values
undHTML Attributes
auch alle Ihre Ansichten müssen hinzufügen:@using YourProject.Controllers
oder Sie können es hinzufügen, um Ihreweb.config <pages><namespaces>
InformationsquelleAutor der Antwort Serj Sagan
Benannte Parameter zu verwenden für beste Ablesbarkeit und die Vermeidung von Verwirrung:
InformationsquelleAutor der Antwort guneysus
Mit MVC5 ich habe es getan so, und es ist 100% code....
Jungs kann man eine Ahnung von dem,...
InformationsquelleAutor der Antwort Sohail Malik