2011-01-09 5 views
2

Nach fast 3 Jahren mit mvc kratze ich mich am Kopf. Ist es nur ich, oder die Art, wie wir Links in asp.net mvc angeben, saugen?Ich bin verärgert mit ASP. NET Mvc Aktion Links? Gibt es etwas besseres in MVC3

@Html.ActionLink("Log Off", "LogOff", "Account") 

@Html.ActionLink("Australia", "CountryDetail", "Places", new { id = "Australia", filter = "xxx", morejunkvaliablesrepeatedoverandaver = "guuuuuuuuh"}, null) 

In den Vorschauen für MSL-1 hatten wir die flippigen generische Aktion Links, die uns intellisense gab und kompilieren Prüfung, die ich liebte. Ich weiß, dass sie aufgrund von Leistungsproblemen entfernt wurden und weil man nicht wirklich garantieren konnte, dass die Route die ganze Zeit auflösen würde ... Aber die Standardmethode macht mich in einer großen Anwendung nicht sicher genug.

Ich habe auch T4Mvc mit MVC2 verwendet, um ehrlich zu sein, ich mochte es nicht wirklich. Es ist nicht Teil des Mvc-Frameworks und frustrierend, vor allem mit Quellcodeverwaltung in großen Teams und kontinuierlichen Integrationsaufbauten zu entwickeln.

Ich denke, ich könnte auch Mvc-Futures importieren und weiterhin die generischen Typen verwenden (es ist wahrscheinlich, was ich tun werde).

Ich bin gerade dabei, ein sehr großes Projekt zu starten und fragte mich, was andere Leute denken? Ist jemand mit den Optionen genervt oder hat er eine neue Lösung?

Es scheint wie ActionLinks sind die grundlegenden & häufig verwendete Funktion. Sollte es keine gute Out-of-the-Box-Lösung geben, sind wir gerade dabei, Revision 3 dieses Frameworks zu erreichen.

+0

Warum nicht einen alternativen Helfer erstellen, die die Art und Weise verhält, die Sie wollen? Besser noch, warum nicht die generische Implementierung aus der Vorschauquelle herausholen und sie mit dem funktionieren lassen, was Sie gerade benutzen? – nerraga

Antwort

4

Ich mochte dies auch beim Start. Versucht T4MVC auch. Generierte Proxy-Klassen fühlten sich zu umständlich an.

Dann habe ich etwas realisiert.
Wenn Ihre Ansichten und Controller offensichtlich benannt und strukturiert sind, dann ändern sie sich nie.

Es ist besser, alles einfach zu befolgen und zu verstehen, anstatt alles super sicher zu machen. Understanding principle of least astonishment ist der Schlüssel.

Also ich mag diese "magischen Saiten" nicht mehr.

+1

Es ist nicht einmal die magische Zeichenkette, die mir so wichtig ist ... Es ist, dass es keine IntelliSense für die Hälfte der Kodierung gibt und dass ich hässliche anonyme Objekte angeben muss ohne angezeigt zu werden, welche Parameter meine Aktionsmethoden erwarten. Es ist einfach nur hässlich anzuschauen. –

+0

@ Jonathon Sie sollten "Dynamik" umarmen.Intellisense und starke Eingabe oft genug nur bietet falsche Sicherheit für ziemlich hohen Preis - unnötige Verbose im Code. Spiel mit Ruby herum, um zu verstehen, was ich meine. –

0

Persönlich benutze ich MVC-Futures-Helfer, um magische Strings in Ansichten zu vermeiden, in der Hoffnung, dass Microsoft eines Tages Zeit finden wird, sie in das Framework einzubauen.

+0

Ja genau ... genauso wie es bei Typ's Schalter gibt. :) –

0

Schauen Sie sich andere Web-Frameworks an und stehlen Sie einige ihrer Ideen, wenn Sie sie mögen.

0

Ich raubte die HtmlTags-Bibliothek von FubuMVC und verwenden Sie es für die Erstellung von alles in Bezug auf HTML. Hier ist ein post Ich habe darüber geschrieben. Es gibt keine Generika, aber zumindest müssen Sie sich nicht mehr an alle Überlastungen erinnern, und es würde gut mit T4MVC funktionieren.

Html.LinkToAction("Edit").Text("Edit").AddClass("navigation") 

vs

Html.ActionLink("Edit", "Edit", null, new { @class = "navigation" })