我正在将我的应用程序升级到 Bootstrap 2.1.1,我需要向许多表单标签添加一个类属性(class="form-horizontal")。问题是,大多数形式都使用相当漂亮的
@using (Html.BeginForm()) {
我宁愿保留的格式。获取类属性的明显方法是使用以下重载,例如:
@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal" })) {
但我宁愿不这样做。向表单添加类属性的最佳方法是什么?
我已经考虑过使用jQuery文档就绪处理程序来.addClass("form-horizontal")到表单,但我担心用户会看到可怕的"无样式内容的闪光"。
另一种方法可能是使用样式较少的混合,将 .form-horizontal 类添加到所有表单样式规则中,但我还没有使用更少,所以我不确定这个。
有人知道解决这个问题的最佳方法吗?
遵循 StanK 的建议,以及关于 SO 的其他一些答案的建议,我创建了一个专门针对该 Bootstrap 表单布局量身定制的扩展方法:
public static MvcForm BeginHorizontalForm(this HtmlHelper helper) {
return helper.BeginForm(null, null, FormMethod.Post, new { @class = "form-horizontal" });
}
这允许我使用
@using (Html.BeginHorizontalForm()) {...
这很好,很优雅。
如何编写一个自定义帮助程序方法,该方法调用所需的重载,传入"表单水平"?
然后,您的视图将使用@using (Html.BootstrapBeginForm()) {
,让您视图美观整洁。