13

アプリをBootstrap2.1.1にアップグレードしている最中であり、多くのフォームタグにクラス属性(class = "form-horizo​​ntal")を追加する必要があります。問題は、ほとんどのフォームがかなり美しいものを使用していることです

@using (Html.BeginForm()) {

私がむしろ保持したいフォーマット。そこでクラス属性を取得する明白な方法は、次のオーバーロードを使用することです。たとえば、次のようになります。

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

しかし、私はむしろそれをしたくありません。フォームにクラス属性を追加する最良の方法は何ですか?

jQueryドキュメントレディハンドラーを使用してフォームに.addClass( "form-horizo​​ntal")を使用することを考えましたが、ユーザーが恐ろしい「スタイルのないコンテンツのフラッシュ」を目にするのではないかと心配しています。

もう1つのアプローチは、スタイルの少ないミックスインを使用して、すべてのフォームスタイルルールに.form-horizo​​ntalクラスを追加することですが、まだ使用量が少ないため、これについてはよくわかりません。

誰かがこの問題を解決するための最良の方法を知っていますか?

4

2 に答える 2

21

StanKのアドバイス、およびSOに関する他のいくつかの回答のアドバイスに従って、そのBootstrapフォームレイアウトに合わせて特別に調整された拡張メソッドを作成しました。

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

これで使用できます

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

素敵でエレガントです。

于 2012-10-17T03:17:43.470 に答える
15

'form-horizo​​ntal'を渡して、必要なオーバーロードを呼び出すカスタムヘルパーメソッドを作成するのはどうですか?

次に、ビューはを使用し@using (Html.BootstrapBeginForm()) {、ビューをきれいに整えます。

于 2012-10-17T02:01:20.417 に答える