Asp.net mvc 有可能在剃须刀中将一个形体嵌套在另一个形体中吗?

Asp.net mvc 有可能在剃须刀中将一个形体嵌套在另一个形体中吗?,asp.net-mvc,razor,Asp.net Mvc,Razor,我将begin/end form语句放在布局页面中,这样就不必在多个页面上重复它。下面是代码的简化版本 @using(Html.BeginForm()) { @RenderBody() <input type = "submit" name = "nextButton" value = "Next-->" /> } @使用(Html.BeginForm()) { @RenderBody() } 事情进展顺利。不幸的是,我有一个页面有几个“删除”按钮。我想为

我将begin/end form语句放在布局页面中,这样就不必在多个页面上重复它。下面是代码的简化版本

@using(Html.BeginForm())
{
    @RenderBody()

    <input type = "submit" name = "nextButton" value = "Next-->" />
}
@使用(Html.BeginForm())
{
@RenderBody()
}
事情进展顺利。不幸的是,我有一个页面有几个“删除”按钮。我想为每个删除按钮生成一个表单,这样它就可以将要删除的项目的id发送回控制器

我能在知道已经有另一种形式的情况下这样做吗


感谢您的帮助请注意,根据

每个表单必须包含在表单元素中。可能有 一个文档中有多个表单,但表单元素不能为空 嵌套的

有一篇关于嵌套形式的警告的中间文章

在这种情况下,最好为每个按钮生成一个
表单
,而不是一个表单


ASP.Net web表单通过使用
runat=server
属性(以及确保每页只允许一个表单的框架)限制您在页面上拥有多个表单。MVC
表单
是纯HTML,因此您可以拥有多个表单。

正如酋长所说,HTML规范禁止嵌套表单。因为MVC只生成标准HTML,所以您必须在规范的框架中工作

为什么不创建两个主布局,并在大多数情况下使用基于表单的主布局,而在需要对嵌入表单进行更多控制时使用不带表单的主布局呢


这就是为什么您应该只在需要表单的地方使用表单,而不是在任何地方使用表单。

很有趣。。“我将开始/结束表单语句放在布局页面中…”听起来您在重新创建webforms的道路上迈出了一步@克里斯·莱弗利:有趣吗???好吧,面对所有我不得不面对的TagBuilder,我不知道还能做什么。事实上,我更接近你刚才提出的建议。我只是没有让那个页面从布局中继承,它工作了。但是我必须复制/粘贴所有内容,从布局到应该包含所有删除按钮的页面。但我将按照您的建议使用另一个布局。@Richard77-请注意,您也可以嵌套布局。所以,你可以有你的标准布局,sans表单。然后您可以有另一个布局,它使用第一页作为布局,但包含表单。然后,您可以选择为您的客户端页面制作任何一种布局。这样,您就不必重复代码。