Gat*_*ign 11 partial-views razor asp.net-mvc-3
我试图使用局部视图来表示我的项目中的表行.我现在有
<table>
<thead>
<tr>
<th >
Column 1
</th>
<th >
Column 2
</th>
<th >
Column 3
</th>
</tr>
</thead>
<tbody>
@foreach(var item in Model.Items)
{
@Html.Action("ItemCalculatedView", new { Id = item.Id})
}
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
在我看来,我有这个
@using (Ajax.BeginForm("SaveStuff", "Whatever",
new { id = @Model.Id }, new AjaxOptions()
{
HttpMethod = "Post",
OnSuccess = "Success"
}))
{
@Html.HiddenFor(m => m.Id)
<tr>
<td>
@Html.Label("Col1", Model.Col1)
</td>
<td>
@Html.TextBox("Number", Model.Number)
</td>
<td>
<input type="submit" id='submit-@Model.Id'/>
</td>
</tr>
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
您可以将表单放在表格单元格中,但不能将表单放在tbody元素中,也不能跨越多个列.所以有三种选择:
tdtd元素中放入另一个表我建议#1 - 使用CSS布局来构造表格,因为table标签样式很难:
主要
<div class="table">
<div class="header-row">
<div class="header-cell">Column 1</th>
<div class="header-cell">Column 2</th>
<div class="header-cell">Column 3</th>
</div>
@foreach(var item in Model.Items)
{
@Html.Action("ItemCalculatedView", new { Id = item.Id})
}
</div>
Run Code Online (Sandbox Code Playgroud)
局部
@using (Ajax.BeginForm(
actionName: "SaveStuff",
controllerName: "Whatever",
routeValues: new { id = @Model.Id },
ajaxOptions: new AjaxOptions
{
HttpMethod = "Post",
OnSuccess = "Success"
},
htmlAttributes: new { @class = "row" }
))
{
<div class="cell">
@Html.HiddenFor(m => m.Id)
</div>
<div class="cell">
@Html.Label("Col1", Model.Col1)
</div>
<div class="cell">
@Html.TextBox("Number", Model.Number)
</div>
<div class="cell">
<input type="submit" id='submit-@Model.Id'/>
</div>
}
Run Code Online (Sandbox Code Playgroud)
CSS
.table { display: table; }
.header-row, row { display: table-row; }
.header-cell, cell { display: table-cell; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7165 次 |
| 最近记录: |