Asp.net mvc 如何在MVC中提交具有多个按钮和参数的同一表单?
我试图弄清楚如何使用ID参数多次发布同一表单,具体取决于单击的按钮。我遇到的问题是,表单只有在按下第一个按钮时才会发布,但没有其他按钮可以发布表单Asp.net mvc 如何在MVC中提交具有多个按钮和参数的同一表单?,asp.net-mvc,button,Asp.net Mvc,Button,我试图弄清楚如何使用ID参数多次发布同一表单,具体取决于单击的按钮。我遇到的问题是,表单只有在按下第一个按钮时才会发布,但没有其他按钮可以发布表单 @using (Html.BeginForm()) { foreach (var p in ViewBag.Projects) { <form role="form" id="frm"> <input type="hidden" value="@p.projId" name="projid" /> <
@using (Html.BeginForm())
{
foreach (var p in ViewBag.Projects)
{
<form role="form" id="frm">
<input type="hidden" value="@p.projId" name="projid" />
<p>@p.name <input type="submit" value="Add user"
class="btn btn-default btn-xs" id="btn-add" /></p>
</form>
}
}
谢谢你的帮助!解决方案可能比我想象的要简单,我开始感到困惑:)您有无效且不受支持的嵌套表单。您需要删除外部
Html.BeginForm()
。由于在“提交”按钮中添加了重复的id
属性,因此您还将进一步生成无效的html。由于不编辑任何值,因此不需要隐藏输入,而是可以将projId
的值添加到管线参数中
@foreach (var project in ViewBag.Projects)
{
using (Html.BeginForm(new { projid = project.projid })) // add projid as a route value
{
<p>
@project.name
<input type="submit" value="Add user" class="btn btn-default btn-xs" /> // remove the id attribute
</p>
}
}
@foreach(ViewBag.Projects中的var项目)
{
使用(Html.BeginForm(new{projid=project.projid}))//将projid添加为路由值
{
@project.name
//删除id属性
}
}
谢谢!现在它就像一个符咒。我没有注意如何嵌套表单,也没有意识到可以以这种方式将表单添加到路由中。
@foreach (var project in ViewBag.Projects)
{
using (Html.BeginForm(new { projid = project.projid })) // add projid as a route value
{
<p>
@project.name
<input type="submit" value="Add user" class="btn btn-default btn-xs" /> // remove the id attribute
</p>
}
}