有没有人设法在网格中创建表单?
尝试(不起作用):
<%= Html.Grid(ViewData["xyz"] as IEnumerable<xyz>).Columns(column =>
{
column.For(gf => gf.Value).Named("Value");
column.For(gf =>
<% using (Html.BeginForm("deletebla", "controllername", FormMethod.Post, new { @class = "deleteForm" }))
{ %>
<input type="submit" value="Delete" />
<% }
%>
).Named("");
}).Empty("Sorry no data.")%>
感谢。
克里斯
答案 0 :(得分:1)
这里有两种可能性(在我的例子中,我将使用强类型视图而不是ViewData
来促进良好实践)。
<% Html.Grid<UserViewModel>(Model)
.Columns(column =>
{
column.For("Test").Named("Value").Action(p => { %>
<td>
<% using (Html.BeginForm("deletebla", "controllername", FormMethod.Post, new { @class = "deleteForm" })) { %>
<% } %>
</td>
<% });
}).Render();
%>
在web.config中添加后,以确保适当的扩展方法在范围内:
<system.web>
<pages>
<namespaces>
<add namespace="MvcContrib.UI.Grid.ActionSyntax" />
</namespaces>
</pages>
</system.web>
或者如果你想避免标签汤,只需使用部分:
<%= Html.Grid<UserViewModel>(Model)
.Columns(column =>
{
column.For("Test").Named("Value").Partial("Foo");
})
%>
在Foo.ascx
:
<% using (Html.BeginForm("deletebla", "controllername", FormMethod.Post, new { @class = "deleteForm" })) { %>
<% } %>
我肯定会选择第二种选择。