13

我正在将我的应用程序升级到 Bootstrap 2.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") 用于表单,但我担心用户会看到可怕的“无样式内容闪烁”。

另一种方法可能是使用less -style 混合,将 .form-horizo​​ntal 类添加到所有表单样式规则中,但我还没有使用 less ,所以我不确定这个。

有谁知道解决这个问题的最佳方法?

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 回答