【发布时间】:2017-09-13 19:06:44
【问题描述】:
尝试使用 .net MVC 和引导程序组织显示表单 - 但是,得到了一些奇怪的引导程序包装行为。
我有以下代码;
@for (int i = 0; i < Model.People.Count(); i++)
{
var person = Model.People[i];
<label class="col-md-3 col-form-label">@Html.DisplayNameFor(modelItem => person.Name) @(i + 1)</label>
<div class="col-md-3">
@Html.DisplayFor(modelItem => person.Name, new { @class = "form-control" })
</div>
}
我期待的是这样的布局:
<table>
<tr>
<td>Person 1:</td>
<td>Joe</td>
<td>Person 2:</td>
<td>Fred</td>
</tr>
<tr>
<td>Person 3:</td>
<td>Sally</td>
<td>Person 4:</td>
<td>etc</td>
</tr>
但我实际得到的是这样的:
<table>
<tr>
<td>Person 1:</td>
<td>Joe</td>
<td>Person 2:</td>
<td>Fred</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>Person 3:</td>
</tr>
<tr>
<td>Sally</td>
<td>Person 4:</td>
<td>etc</td>
</tr>
</table>
我的印象是,如果引导网格布局超过 12,则应该简单地换行。所以 4x col-md-6 基本上会产生 2 行,它们都有 2 列,占 50%。
如果元素是交替的标签/ div,任何人都可以提供任何关于为什么包装行为奇怪的见解吗?可能是引导程序的错误 - 考虑到他们自己的文档使用相同类型的标记 (e.g.)?
我想说:
将标记更改为有一个额外的 div 是我最好的方法吗? 例如
<div class="col-md-3">
<label>Person 1:</label>
</div>
<div class="col-md-3>Joe</div>
但事实证明 - 这也有奇怪的包装行为:here
【问题讨论】:
-
使用分别包装每 4 列,或者在每 4 列之后使用有点想避免有条件行(例如 if (i % 2 == 0)if(i % 2 != 0)。我想默认行为是,如果 col 超过 12,它应该换行 - 如果它只是 div(根本没有任何标签 - 包括嵌套),就是这种情况。Moreso 想找出标签为什么会扰乱这种行为。跨度>您将详细了解为什么默认行为在此链接上不起作用stackoverflow.com/questions/25598728/…
标签: html asp.net-mvc twitter-bootstrap