2012-10-17 7 views
12

Ich bin dabei, meine App auf Bootstrap 2.1.1 zu aktualisieren und ich muss ein Klassenattribut hinzufügen (class = "form-horizontal") zu vielen der Form-Tags. Das Problem ist, dass die meisten Formulare das ziemlich schöne Format verwenden, das ich lieber behalten würde. Der offensichtliche Weg, um das Klassenattribut zu bekommen gibt es die folgende Überlastung zu verwenden, zum Beispiel:Wie kann ich Html.BeginForm() in MVC3/4 ein Klassenattribut hinzufügen unter Beibehaltung der minimalen Überladung

@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal" })) { 

Aber ich würde lieber nicht tun. Was ist der beste Weg, um meinem Formular ein Klassenattribut hinzuzufügen?

Ich habe darüber nachgedacht, einen jQuery Dokument bereit Handler .addClass („form horizontal“) zu Formularen, aber ich bin besorgt, dass die Nutzer den gefürchteten ‚Blitz unstyled Inhalts‘ sehen würden. Ein anderer Ansatz könnte darin bestehen, einen -less-Style-Mix zu verwenden, um die .form-horizonal-Klasse allen Form-Style-Regeln hinzuzufügen, aber ich habe noch nicht weniger verwendet, also bin ich mir da nicht sicher ein.

Wer kennt den besten Weg, um dieses Problem zu lösen?

Antwort

14

Wie wäre es mit dem Schreiben einer benutzerdefinierten Hilfsmethode, die die erforderliche Überladung aufruft und 'form-horizontal' übergibt?

Dann würden Sie Ansichten verwenden @using (Html.BootstrapBeginForm()) {, so dass Sie Ansichten schön und ordentlich.

+0

Ja, das ist der Weg. Danke @StanK –

20

stank Rat Nach und den Rat von einigen anderen Antworten auf SO, habe ich eine Erweiterungsmethode zu diesem Bootstrap Formularlayout zugeschnitten speziell:

public static MvcForm BeginHorizontalForm(this HtmlHelper helper) { 
    return helper.BeginForm(null, null, FormMethod.Post, new { @class = "form-horizontal" }); 
} 

die mich

@using (Html.BeginHorizontalForm()) {... 

verwenden können Das ist schön und elegant.

+0

Ehrfürchtig, danke. –

+2

Haben Sie diese Methode in der FormExtensions-Klasse hinzugefügt? – Chlebta

Verwandte Themen