Hauptfrage: Gibt es eine bessere Möglichkeit, ein wiederverwendbares Steuerelement zu erstellen?ASP.Net MVC: Erstellen von benutzerdefinierten Steuerelementen Art von chaotisch?
Also die Idee war, eine Paging-Kontrolle zu machen, um im Grunde aufhören zu stoppen, praktisch das gleiche Markup auf mehreren Ansichten zu tippen. Es dauert dies:
<%= Html.ActionLink("First", "Details", new RouteValueDictionary(new { parentForumId = Model.TopicId, pageNumber = Model.FirstPage, amountToShow = Model.AmountToShow }))%>
|
<%= Html.ActionLink("Previous", "Details", new RouteValueDictionary(new { parentForumId = Model.TopicId, pageNumber = Model.PreviousPage, amountToShow = Model.AmountToShow }))%>
|
<%= Html.ActionLink("Next", "Details", new RouteValueDictionary(new { parentForumId = Model.TopicId, pageNumber = Model.NextPage, amountToShow = Model.AmountToShow }))%>
|
<%= Html.ActionLink("Last", "Details", new RouteValueDictionary(new { parentForumId = Model.TopicId, pageNumber = Model.LastPage, amountToShow = Model.AmountToShow }))%>
Und in diese Dreh:
<%= Html.Pager("View", "Controller", "RouteName", Model, new Dictionary<String, Object> { {"parentForumId", Model.ParentForumId}}, " ") %>
Wo, wie Sie sehen können, ich in der benötigten Ansicht passieren, Controller, Routennamen, Modell und ein Wörterbuch verwendet Anfrage hinzufügen Variablen auf die URL für die Verbindung.
Was ich gefunden habe ist, dass ich eine Erweiterungsmethode für die HtmlHelper-Klasse machen müsste und im Wesentlichen was in ASP.Net eine vollständige Klasse (mit netten Methoden wie CreateChildControls) und alles in eine Hauptmethode, die zurückkehrt ein Faden.
Ist dies der bevorzugte Weg? Eine nette Sache der ASP.Net-Methode war das Markup für die Klasse, denn Sie haben das HTML-Markup-Tag, das Markup-Eigenschaften in Klasseneigenschaften umwandelt. Es ist in der Regel für sauberere Markup, aber zugegebenermaßen "gefälschte" HTML. In dieser Situation habe ich eine Methode mit was könnte eine Meile lang Unterschrift pumpen HTML. Und da ich keine Basis-WebControl-Klasse habe, muss jedes Steuerelement, das ich mache, Methodenaufrufe mit denselben Grundbedürfnissen haben, wie etwa CssClass oder ID.
nun mit, dass gesagt wird, nehme ich gebe ich könnte in einem Wörterbuch, da die HtmlHelper.GenerateRouteLink Methode Attribute, die ich Anrufe für eine irgendwie bin mit, aber dies scheint wirklich wirklich chaotisch.
Gibt es einen besseren Weg, dies zu tun?
haha ja Entschuldigung, ich denke immer noch ASP.NEt gegen MVC –