我发现是什么原因造成的。我的 _Layout.cshtml 视图中有以下 javascript:
$('input[type=text]').addClass('form-control');
一旦我删除它并在控件中应用该类,它就会正确呈现:
@Html.TextBoxFor(model => model.Manufacturer, new { style = "width: 400px;", @maxlength="50", @class = "form-control" })
文本输入似乎是唯一有这个问题的。textarea 和 select 没有相同的行为。
我想避免必须将引导类放在每个视图中的每个控件中。如果有人知道更好的方法,请告诉我。
更新
事实证明,bootstrap.css(版本 3.0.0,第 1712 行)中的填充样式(12px)导致了问题:
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px; /* this line is causing the problem */
font-size: 14px;
line-height: 1.428571429;
color: #555555;
vertical-align: middle;
background-color: #ffffff;
border: 1px solid #cccccc;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}
讨厌改变引导 css。我在我的 _Layout.cshtml 视图中临时覆盖它:
$('input[type=text]').addClass('form-control');
$('input[type=text]').css('padding', '6px 0');